NIMSDK-AOS  9.19.0
IMsgExportProcessor.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.migration.processor;
2 
5 
6 import java.io.File;
7 import java.util.ArrayList;
8 
9 /**
10  * 历史消息牵移时导出时自定义处理器
11  */
12 public interface IMsgExportProcessor extends IMsgMigrationProgress {
13 
14  /**
15  * 导出时的消息过滤器,可以用来过滤一些不需要导出的消息
16  *
17  * @param messages 原始消息
18  * @return 过滤之后的消息
19  */
20  ArrayList<IMMessage> filterMsg(final ArrayList<IMMessage> messages);
21 
22 
23  /**
24  * 导出时加密使用的密钥,可以每次都不同 ,在导入时会返回回来,不用自己存储
25  *
26  * @return 加密时使用的密钥,如果不做加密动作,可以返回 null
27  */
28  String secretKey();
29 
30 
31  /**
32  * 导出时的加密动作,用户可以对文件进行加密 ,运行在后台线程。<br/>
33  * 注意:用户只能进行加密的操作,不能修改文件的内容,并且各端实现保持一致<br/>
34  * 加密是可选的,不过强烈建议进行加密,如果不加密返回原文件即可。
35  *
36  * @param originFile 原始文件
37  * @return 加密之后的文件
38  */
39  File encrypt(final File originFile) throws Exception;
40 
41 
42  /**
43  * 导出时的压缩动作 ,用户可以对文件进行压缩,运行在后台线程。<br/>
44  * 注意:用户只能进行压缩的操作,不能修改文件的内容,并且各端实现保持一致<br/>
45  * 压缩操作是可选的,不过强烈建议进行压缩,如果不压缩,返回原文件即可。
46  *
47  * @param originFile 待压缩的文件
48  * @return 压缩之后的文件
49  */
50  File zip(final File originFile) throws Exception;
51 
52 
53  /**
54  * 进度通知,此方法运行UI线程,可以直接更新UI
55  *
56  * @param progress 进度值: 0-100
57  * @param state 当前所处的阶段,分为如下两个阶段 :<br>
58  * 1. DB中的消息转换成文件 : {@link MigrationConstant#EXPORT_PROGRESS_CONVERT_MSG_STATE}<br>
59  * 2. 文件上传 : {@link MigrationConstant#EXPORT_PROGRESS_UPLOAD_FILE_STATE}<br>
60  * 每个阶段的进度各自独立
61  */
62  @Override
63  void progressUpdate(int progress, int state);
64 
65 
66 }
String secretKey()
导出时加密使用的密钥,可以每次都不同 ,在导入时会返回回来,不用自己存储
File encrypt(final File originFile)
导出时的加密动作,用户可以对文件进行加密 ,运行在后台线程。 注意:用户只能进行加密的操作,不能修改文...
NIM消息实体数据结构。 第三方APP不要调用设置类接口,调用之后不会被持久化
Definition: IMMessage.java:10
历史消息牵移时导出时自定义处理器
void progressUpdate(int progress, int state)
进度通知,此方法运行UI线程,可以直接更新UI
File zip(final File originFile)
导出时的压缩动作 ,用户可以对文件进行压缩,运行在后台线程。 注意:用户只能进行压缩的操作,不能修改文...
ArrayList< IMMessage > filterMsg(final ArrayList< IMMessage > messages)
导出时的消息过滤器,可以用来过滤一些不需要导出的消息