1package com.netease.nimlib.sdk.msg;
3import android.util.Pair;
5import com.netease.nimlib.NimNosSceneKeyConstant;
6import com.netease.nimlib.apt.annotation.NIMService;
7import com.netease.nimlib.notifier.support26.annotation.NonNull;
8import com.netease.nimlib.sdk.AbortableFuture;
9import com.netease.nimlib.sdk.InvocationFuture;
10import com.netease.nimlib.sdk.NosTokenSceneConfig;
11import com.netease.nimlib.sdk.Observer;
12import com.netease.nimlib.sdk.migration.model.MigrationConstant;
13import com.netease.nimlib.sdk.migration.processor.IMsgExportProcessor;
14import com.netease.nimlib.sdk.migration.processor.IMsgImportProcessor;
15import com.netease.nimlib.sdk.msg.attachment.FileAttachment;
16import com.netease.nimlib.sdk.msg.attachment.MsgAttachmentParser;
17import com.netease.nimlib.sdk.msg.constant.AttachStatusEnum;
18import com.netease.nimlib.sdk.msg.constant.DeleteTypeEnum;
19import com.netease.nimlib.sdk.msg.constant.MsgStatusEnum;
20import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
21import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
22import com.netease.nimlib.sdk.msg.model.CollectInfo;
23import com.netease.nimlib.sdk.msg.model.CollectInfoPage;
24import com.netease.nimlib.sdk.msg.model.CustomNotification;
25import com.netease.nimlib.sdk.msg.model.GetMessagesDynamicallyParam;
26import com.netease.nimlib.sdk.msg.model.GetMessagesDynamicallyResult;
27import com.netease.nimlib.sdk.msg.model.IMMessage;
28import com.netease.nimlib.sdk.msg.model.LocalAntiSpamResult;
29import com.netease.nimlib.sdk.msg.model.MessageKey;
30import com.netease.nimlib.sdk.msg.model.MsgFullKeywordSearchConfig;
31import com.netease.nimlib.sdk.msg.model.MsgPinDbOption;
32import com.netease.nimlib.sdk.msg.model.MsgPinSyncResponseOptionWrapper;
33import com.netease.nimlib.sdk.msg.model.MsgSearchOption;
34import com.netease.nimlib.sdk.msg.model.MsgTimingFullKeywordSearchConfig;
35import com.netease.nimlib.sdk.msg.model.NIMMessage;
36import com.netease.nimlib.sdk.msg.model.QueryDirectionEnum;
37import com.netease.nimlib.sdk.msg.model.QueryMySessionOption;
38import com.netease.nimlib.sdk.msg.model.QueryThreadTalkHistoryOption;
39import com.netease.nimlib.sdk.msg.model.QuickCommentOptionWrapper;
40import com.netease.nimlib.sdk.msg.model.RecentContact;
41import com.netease.nimlib.sdk.msg.model.RecentSession;
42import com.netease.nimlib.sdk.msg.model.RecentSessionList;
43import com.netease.nimlib.sdk.msg.model.SessionAckInfo;
44import com.netease.nimlib.sdk.msg.model.ShowNotificationWhenRevokeFilter;
45import com.netease.nimlib.sdk.msg.model.StickTopSessionInfo;
46import com.netease.nimlib.sdk.msg.model.ThreadTalkHistory;
47import com.netease.nimlib.sdk.search.model.MsgIndexRecord;
48import com.netease.nimlib.sdk.team.model.IMMessageFilter;
50import java.util.ArrayList;
67 String MSG_CHATTING_ACCOUNT_ALL =
"all";
75 String MSG_CHATTING_ACCOUNT_NONE =
null;
450 boolean persistClear);
487 boolean persistClear,
IMMessageFilter customFilter,
boolean updateUnread);
1065 boolean enableForceUploadFile);
1127 Map<String, Object> pushPayload,
boolean shouldNotifyBeCount);
1140 Map<String, Object> pushPayload,
boolean shouldNotifyBeCount,
1155 Map<String, Object> pushPayload,
boolean shouldNotifyBeCount,
1156 String postscript, String attach);
1206 boolean saveToDB,
boolean withLastMsg);
1438 boolean needBadge, String pushTitle, String pushContent,
1439 Map<String, Object> pushPayload);
1465 boolean needBadge, String pushTitle, String pushContent,
1466 Map<String, Object> pushPayload);
自定义通知。 区别于IMMessage,SDK仅透传该类型消息,不负责解析和存储。消息内容由第三方APP自由扩展。 自定义通知消息可选择要不要发送给当前不在线的用户。
消息的关键信息,通过这些信息可以从服务端查询到该消息的完整部分
历史消息牵移时导出时自定义处理器,导出时参考IMsgExportProcessor
云信消息服务接口类,提供消息发送、消息查询、历史消息、消息扩展功能、获取未读数、已读回执、会话列表等相关接口。
List< RecentContact > queryRecentContactsBlock(RecentContact anchor, QueryDirectionEnum direction, int limit)
分页查询指定数量的最近会话列表。该接口为同步。
void clearChattingHistory(String account, SessionTypeEnum sessionType, boolean ignore)
清除指定用户的所有消息记录。
InvocationFuture< List< IMMessage > > queryMessageListByTypesV2(List< MsgTypeEnum > types, IMMessage anchor, long toTime, QueryDirectionEnum direction, int limit, boolean asc)
根据消息类型查询指定时间段的本地历史消息。该方法为异步。
int getTotalUnreadCount()
获取会话消息总未读数。
InvocationFuture< Void > sendMessage(IMMessage msg, boolean resend)
发送消息。
InvocationFuture< List< IMMessage > > pullHistoryById(List< MessageKey > msgKeyList, boolean persist)
根据消息关键信息批量查询服务端历史消息。该方法为异步。
List< IMMessage > queryMessageListByServerIdBlock(List< String > serverIds)
通过 ServerId 批量获取本地历史消息。该方法为同步。
List< RecentContact > queryRecentContactsBlock(MsgTypeEnum filterMsgType)
过滤指定消息类型的会话,例如过滤文本消息,则返回最近一条非文本消息的会话。该接口为同步。
int getTotalUnreadCount(boolean notify)
根据免打扰状态获取会话消息总未读数。
InvocationFuture< RecentSessionList > queryMySessionList(QueryMySessionOption option)
分页获取服务端指定会话列表。
InvocationFuture< ArrayList< IMMessage > > searchRoamingMsg(String otherAccid, long fromTime, long endTime, String keyword, int limit, boolean reverse)
搜索指定聊天对象的漫游消息。
AbortableFuture< Void > downloadAttachment(IMMessage msg, boolean thumb)
手动下载附件。
InvocationFuture< List< IMMessage > > queryMessageListBySubtype(MsgTypeEnum msgTypeEnum, IMMessage anchor, int limit, int subtype)
根据消息子类型查询本地历史消息。该方法为异步。
InvocationFuture< MsgPinSyncResponseOptionWrapper > syncMsgPin(SessionTypeEnum sessionType, String sessionId, long timestamp)
同步会话的 PIN 消息。
InvocationFuture< List< IMMessage > > queryMessageListByType(MsgTypeEnum msgTypeEnum, IMMessage anchor, int limit)
根据消息类型从后向前查询本地历史消息。该方法为异步。
InvocationFuture< List< IMMessage > > queryMessageListExTime(IMMessage anchor, long toTime, QueryDirectionEnum direction, int limit)
查询指定时间段的本地历史消息。该方法为异步。
InvocationFuture< Void > revokeMessage(IMMessage message, String customApnsText, Map< String, Object > pushPayload, boolean shouldNotifyBeCount)
撤回指定的消息,并设置第三方推送属性(包括 iOS 推送),及是否更新未读数。
InvocationFuture< Long > removeMsgPin(IMMessage msg, String ext)
移除一条 PIN 消息标记。
InvocationFuture< Void > importRecentSessions(List< Pair< String, SessionTypeEnum > > sessions)
批量导入最近会话,仅支持 contactId 和 sessionType 两个字段
void setChattingAccount(String account, SessionTypeEnum sessionType)
设置当前正在聊天的对象。 设置后会影响内建的消息提醒。如果有新消息到达,且消息来源是正在聊天的对象,将不会有消息提醒。 调用该接口的同时 SDK 会自动调用 clearUnreadCount(Str...
InvocationFuture< Void > deleteMySession(@NonNull String[] sessionIdArr)
删除服务端指定会话。
InvocationFuture< List< IMMessage > > searchMessage(SessionTypeEnum sessionType, String sessionId, MsgSearchOption option)
查询指定会话的本地历史消息。该方法为异步。
void clearChattingHistory(String account, SessionTypeEnum sessionType)
清除指定用户的所有消息记录,不同步到数据库。
List< MsgIndexRecord > searchAllSessionBlock(String query, int limit)
指定关键字检索所有会话。该方法为同步。
InvocationFuture< Void > revokeMessage(IMMessage message)
撤回指定的消息。 默认不包含第三方推送消息(包括 iOS 推送)。
InvocationFuture< List< IMMessage > > searchMessageHistory(String keyword, List< String > fromAccounts, IMMessage anchor, int limit)
InvocationFuture< List< MsgIndexRecord > > searchAllSession(String query, int limit)
指定关键字检索所有会话。该方法为异步。
InvocationFuture< List< QuickCommentOptionWrapper > > queryQuickComment(List< IMMessage > msgList)
获取消息的快捷评论列表。
InvocationFuture< Long > queryRoamMsgHasMoreTagServerId(String sessionId, SessionTypeEnum sessionType)
获取指定会话中有漫游消息标记的消息的 ServerId。该方法为异步。
InvocationFuture< Long > updateMsgPin(IMMessage msg, String ext)
更新一条 PIN 消息。
InvocationFuture< Void > sendCustomNotification(CustomNotification notification)
发送自定义系统通知。该接口为异步。 调用该接口后,SDK 会触发 MsgServiceObserve#observeCustomNotification(Observer,...
AbortableFuture< String > transVoiceToText(String voiceUrl, String path, long duration)
语音转文字。
InvocationFuture< Void > updateMySession(@NonNull String sessionId, @NonNull String ext)
更新服务端会话扩展字段。
InvocationFuture< List< IMMessage > > pullMessageHistoryExType(IMMessage anchor, long toTime, int limit, QueryDirectionEnum direction, MsgTypeEnum[] msgTypes)
查询指定时间段和消息类型的的服务端历史消息。该方法为异步。默认不同步到数据库。
InvocationFuture< List< IMMessage > > pullMessageHistoryEx(IMMessage anchor, long toTime, int limit, QueryDirectionEnum direction, boolean persist)
查询指定时间段内的服务端历史消息。该方法为异步。
InvocationFuture< List< SessionAckInfo > > clearUnreadCount(SessionTypeEnum sessionType)
将指定类型的会话未读数清零(标记已读)。该方法为异步。 调用该接口后,SDK 会触发 MsgServiceObserve#observeRecentContact(Observer,...
InvocationFuture< Long > addQuickComment(IMMessage msg, long replyType, String ext, boolean needPush, boolean needBadge, String pushTitle, String pushContent, Map< String, Object > pushPayload)
添加一条快捷评论并设置推送。
InvocationFuture< List< SessionAckInfo > > clearUnreadCount(List< Pair< String, SessionTypeEnum > > sessionKeyList)
将指定聊天对象的会话未读数清零(标记已读)。该方法为异步。 调用该接口后,SDK 会触发 MsgServiceObserve#observeRecentContact(Observer,...
RecentContact createEmptyRecentContact(String contactId, SessionTypeEnum sessionType, long tag, long time, boolean saveToDB)
创建一条空的最近会话。
void registerShouldShowNotificationWhenRevokeFilter(ShowNotificationWhenRevokeFilter filter)
注册在撤回消息时展示通知类消息的过滤器。
void updateRoamMsgHasMoreTag(IMMessage newTag)
根据是否有更多漫游消息的标记更新最近会话。
List< MsgPinDbOption > queryMsgPinBlock(String sessionId, SessionTypeEnum sessionType)
获取本地会话的 PIN 消息列表。
InvocationFuture< List< IMMessage > > queryUnreadMessageList(String sessionId, SessionTypeEnum sessionType)
获取指定会话的未读消息列表。该方法为异步。
InvocationFuture< Integer > removeCollect(List< Pair< Long, Long > > collectInfo)
批量移除收藏列表。
void deleteChattingHistory(IMMessage message, boolean ignore)
删除一条本地历史消息,并指定是否记录删除操作。
InvocationFuture< StickTopSessionInfo > addStickTopSession(String sessionId, SessionTypeEnum sessionType, String ext)
添加一个置顶会话。
int getUnreadCountBySessionType(SessionTypeEnum sessionType)
获取指定类型的会话总未读数。
InvocationFuture< RecentSessionList > queryMySessionList(long minTimestamp, Long maxTimestamp, Integer needLastMsg, Integer limit, Integer hasMore)
分页获取服务端指定会话列表。
AbortableFuture< String > transVoiceToTextAtScene(String voiceUrl, String path, long duration, String sceneKey)
语音转文字并指定上传文件的场景。
void deleteRangeHistory(String account, SessionTypeEnum sessionType, long startTime, long endTime)
根据时间范围删除指定用户的本地历史消息。
void deleteRoamMsgHasMoreTag(String sessionId, SessionTypeEnum sessionType)
根据是否有更多漫游消息的标记删除指定会话。
InvocationFuture< CollectInfoPage > queryCollect(CollectInfo anchor, long toTime, int limit, QueryDirectionEnum direction)
分页查询服务端消息收藏列表。
InvocationFuture< List< RecentContact > > queryRecentContacts(Set< MsgTypeEnum > filterMsgTypeSet)
查过滤指定消息类型的会话,例如过滤文本和音频消息,则返回最近一条非文本或音频消息的会话。该接口为异步。
AbortableFuture< String > transVoiceToTextEnableForce(String voiceUrl, String path, long duration, String sceneKey, boolean enableForceUploadFile)
语音转文字并指定上传文件的场景,以及是否要强制重新上传文件。
InvocationFuture< List< RecentContact > > queryRecentContacts(RecentContact anchor, QueryDirectionEnum direction, int limit)
分页查询指定数量的最近会话列表。该接口为异步。
InvocationFuture< Void > insertLocalMessage(IMMessage msg, String fromAccount)
插入消息到本地数据库,但不发送到服务器端。该方法为异步。
InvocationFuture< CollectInfo > updateCollect(CollectInfo info, String ext)
更新一个收藏列表的扩展字段。
boolean isStickTopSession(String sessionId, SessionTypeEnum sessionType)
获取会话是否被置顶。
InvocationFuture< List< IMMessage > > queryMessageListByType(MsgTypeEnum msgTypeEnum, Long maxTime, int limit)
根据消息类型从前向后查询本地历史消息。该方法为异步。
InvocationFuture< Void > revokeMessageEx(IMMessage message, String customApnsText, Map< String, Object > pushPayload)
撤回指定的消息,并设置第三方推送属性(包括 iOS 推送)。
void clearServerHistory(String sessionId, boolean deleteRoam)
清空服务端单聊历史消息,并指定是否删除漫游消息。
InvocationFuture< Long > queryRoamMsgHasMoreTime(String sessionId, SessionTypeEnum sessionType)
获取指定会话中有漫游消息标记的时间戳。该方法为异步。
InvocationFuture< List< IMMessage > > queryMessageListByUuid(List< String > uuids)
通过 uuid 批量获取本地历史消息。该方法为异步。
InvocationFuture< Void > deleteRoamingRecentContact(String contactId, SessionTypeEnum sessionTypeEnum)
删除指定会话的漫游消息。 不删除本地消息,如果在其他端登录,当前时间点该会话已经产生的消息不漫游。
InvocationFuture< List< IMMessage > > searchAllMessage(MsgSearchOption option)
查询所有本地历史消息。该方法为异步。
void updateRecentByMessage(IMMessage message, boolean needNotify)
更新指定消息所属的最近会话。
InvocationFuture< Void > cancelUploadAttachment(IMMessage imMessage)
取消上传消息附件(图片、视频、文件类型)。 如果成功取消了附件的上传,对应的消息会发送失败,消息状态是 MsgStatusEnum#fail,附件状态是 AttachStatusEnum#cancel...
void updateIMMessage(IMMessage message)
更新消息。目前仅支持更新本地扩展字段 LocalExtension。
List< RecentContact > queryRecentContactsBlock(Set< MsgTypeEnum > filterMsgTypeSet)
查过滤指定消息类型的会话,例如过滤文本和音频消息,则返回最近一条非文本或音频消息的会话。该接口为同步。
InvocationFuture< Long > removeQuickComment(IMMessage msg, long replyType, String ext, boolean needPush, boolean needBadge, String pushTitle, String pushContent, Map< String, Object > pushPayload)
删除一条快捷评论并设置推送。
InvocationFuture< CollectInfo > addCollect(int type, String date, String ext, String uniqueId)
添加一条收藏。
long queryRoamMsgHasMoreTimeBlock(String sessionId, SessionTypeEnum sessionType)
获取指定会话中有漫游消息标记的消息的时间戳。该方法为同步。
InvocationFuture< List< IMMessage > > pullMessageHistoryOrderByTime(MsgTimingFullKeywordSearchConfig config)
云端(服务端)历史消息全文检索,按照消息时间顺序进行排序。该方法为异步。
List< RecentContact > queryRecentContactsBlock(int limit)
查询指定数量的最近会话列表。该接口为同步。
InvocationFuture< Void > sendMessageReceipt(String sessionId, IMMessage message)
发送单聊消息已读回执。
InvocationFuture< Void > removeQuickComment(IMMessage msg, long replyType, String ext)
删除一条快捷评论。
long queryRoamMsgHasMoreTagServerIdBlock(String sessionId, SessionTypeEnum sessionType)
获取指定会话中有漫游消息标记的消息的 ServerId。该方法为同步。
IMMessage queryLastMessage(String account, SessionTypeEnum sessionType)
查询同指定用户的最近一条本地历史消息。该方法为同步。
InvocationFuture< Void > removeStickTopSession(String sessionId, SessionTypeEnum sessionType, String ext)
移除一个置顶会话。
InvocationFuture< Long > deleteMsgSelf(List< IMMessage > msgList, String ext)
单向删除指定的消息列表,并同时单向删除服务端历史消息、漫游消息。该方法为异步。 用户单向删除消息列表成功后,该账号下不再能从服务端拉取到被删除消息。而且,本端登录此账号的其他端都会删除本地的该消息列表...
void updateRecentAndNotify(RecentContact recent)
更新指定的最近会话。 更新成功后,SDK 会触发 MsgServiceObserve#observeRecentContact(Observer, boolean) 回调通知 。
InvocationFuture< Void > addQuickComment(IMMessage msg, long replyType, String ext)
添加一条快捷评论。
InvocationFuture< CollectInfoPage > queryCollect(CollectInfo anchor, long toTime, int limit, QueryDirectionEnum direction, int type, boolean persist)
按照收藏类型分页查询服务端消息收藏列表。
InvocationFuture< Void > revokeMessage(IMMessage message, String customApnsText, Map< String, Object > pushPayload, boolean shouldNotifyBeCount, String postscript, String attach)
撤回指定的消息,并设置第三方推送属性(包括 iOS 推送)、附言、扩展信息,及是否更新未读数。
LocalAntiSpamResult checkLocalAntiSpam(String content, String replacement)
检验本地反垃圾词库。
AbortableFuture< FileAttachment > sendFile(FileAttachment attachment)
发送文件。该方法为异步。
boolean everBeenDeleted(IMMessage message)
查询指定消息是否存在本地删除记录。
InvocationFuture< Void > revokeMessage(IMMessage message, String customApnsText, Map< String, Object > pushPayload, boolean shouldNotifyBeCount, String postscript)
撤回指定的消息,并设置第三方推送属性(包括 iOS 推送)、附言,及是否更新未读数。
InvocationFuture< List< IMMessage > > pullMessageHistory(MsgFullKeywordSearchConfig config)
云端(服务端)历史消息全文检索。该方法为异步。
InvocationFuture< List< RecentContact > > queryRecentContacts()
查询全部最近会话。该接口为异步。
void clearServerHistory(String sessionId, SessionTypeEnum sessionType, boolean deleteRoam)
清空服务端单聊历史消息。
List< IMMessage > queryMessageListBySubtypeBlock(MsgTypeEnum msgTypeEnum, IMMessage anchor, int limit, int subtype)
根据消息子类型查询本地历史消息。该方法为同步。
InvocationFuture< List< RecentContact > > queryRecentContacts(MsgTypeEnum filterMsgType)
过滤指定消息类型的会话,例如过滤文本消息,则返回最近一条非文本消息的会话。该接口为异步。
void registerCustomAttachmentParser(MsgAttachmentParser customParser)
注册附件解析器。
InvocationFuture< List< RecentContact > > queryRecentContacts(int limit)
查询指定数量的最近会话列表。该接口为异步。
RecentContact queryRecentContact(String contactId, SessionTypeEnum sessionType)
查询指定的会话记录。
InvocationFuture< List< IMMessage > > pullMessageHistoryExType(IMMessage anchor, long toTime, int limit, QueryDirectionEnum direction, MsgTypeEnum[] msgTypes, boolean persist, boolean persistClear)
查询指定时间段和消息类型的的服务端历史消息,可指定是否同步到数据库及是否同步被清除的消息到数据库。该方法为异步。
InvocationFuture< Void > clearMsgDatabase(boolean clearRecent)
清空消息数据库的所有消息记录,并指定是否要同时清空最近会话数据库。该方法为异步。 若最近会话列表被清空,会触发 MsgServiceObserve#observeRecentContactDelet...
InvocationFuture< CollectInfo > updateCollect(long infoId, long createTime, String ext)
更新一个指定创建时间的收藏列表的扩展字段。
InvocationFuture< Void > clearUnreadCount(String account, SessionTypeEnum sessionType)
将指定聊天对象的会话未读数清零(标记已读)。 调用该接口后,SDK 会触发 MsgServiceObserve#observeRecentContact(Observer,...
void deleteChattingHistory(IMMessage message)
删除一条本地历史消息,并同步数据库。 从服务端拉取消息时,若存在该消息的本地删除记录,则该消息不会同步到数据库中。
InvocationFuture< List< IMMessage > > pullMessageHistory(IMMessage anchor, int limit, boolean persist, boolean persistClear)
从后向前批量查询服务端历史消息。该方法为异步。
void registerIMMessageFilter(IMMessageFilter filter)
注册通知类消息的过滤器。
List< IMMessage > queryUnreadMessageListBlock(String sessionId, SessionTypeEnum sessionType)
获取指定会话的未读消息列表。该方法为同步。
void clearAllUnreadCount()
将会话所有未读数清零(标记已读)。该接口为同步。 调用该接口后,SDK 会触发 MsgServiceObserve#observeRecentContact(Observer,...
InvocationFuture< Long > addMsgPin(IMMessage msg, String ext)
添加一条 PIN 消息。
InvocationFuture< Void > deleteRecentContact(String account, SessionTypeEnum sessionType, DeleteTypeEnum deleteType, boolean sendAck)
删除最近联系人记录。 调用该接口后,不会触发MsgServiceObserve#observeRecentContactDeleted(Observer, boolean)通知
InvocationFuture< RecentSession > queryMySession(@NonNull String sessionId)
获取服务端指定会话。
void clearServerHistory(String sessionId, SessionTypeEnum sessionType, boolean sync, String ext)
清空服务端指定会话的历史消息。
InvocationFuture< Void > saveMessageToLocal(IMMessage msg, boolean notify)
保存消息到本地数据库,但不发送到服务器端。该方法为异步。 该方法用于第三方应用保存本地提醒类的消息。 将消息保存到数据库后,如需通知 UI 层更新,可将 notify 设置为 true,此时会触发 ...
InvocationFuture< List< MsgIndexRecord > > searchSession(String query, SessionTypeEnum sessionType, String sessionId)
指定关键字检索指定的会话。该方法为异步。
List< IMMessage > queryMessageListExBlock(IMMessage anchor, QueryDirectionEnum direction, int limit, boolean asc)
根据锚点和方向查询本地历史消息。该方法为同步。
void deleteChattingHistory(List< IMMessage > msgList, boolean ignore)
删除一条本地历史消息,并指定是否记录删除操作。
InvocationFuture< List< IMMessage > > queryMessageListEx(IMMessage anchor, QueryDirectionEnum direction, int limit, boolean asc)
根据锚点和方向查询本地历史消息。该方法为异步。
InvocationFuture< CollectInfoPage > queryCollect(int limit)
从服务查询消息收藏列表。
InvocationFuture< StickTopSessionInfo > updateStickTopSession(String sessionId, SessionTypeEnum sessionType, String ext)
更新一个置顶会话的扩展字段。
InvocationFuture< List< IMMessage > > pullMessageHistoryExType(IMMessage anchor, long toTime, int limit, QueryDirectionEnum direction, MsgTypeEnum[] msgTypes, boolean persist)
查询指定时间段和消息类型的的服务端历史消息,可指定是否同步到数据库。该方法为异步。
void migrateMessages(String from, String to, boolean changeFrom)
迁移历史消息。 调用该方法将消息发送端的历史消息迁移到消息接收端的数据库中,包括消息内容和联系人信息。
void updateIMMessageStatus(IMMessage message)
更新消息属性。
void deleteRecentContact2(String account, SessionTypeEnum sessionType)
删除指定聊天对象和会话类型的最近会话记录,包括本地最近会话和漫游消息。 调用该接口删除后,会触发 MsgServiceObserve#observeRecentContactDeleted(Obser...
InvocationFuture< Void > replyMessage(IMMessage msg, IMMessage replyMsg, boolean resend)
回复消息。
InvocationFuture< ThreadTalkHistory > queryThreadTalkHistory(IMMessage anchor, long fromTime, long toTime, int limit, QueryDirectionEnum direction, boolean persist)
查询服务端 Thread 历史消息(支持单聊、群、超大群)。
InvocationFuture< List< IMMessage > > pullMessageHistoryExType(IMMessage anchor, long toTime, int limit, QueryDirectionEnum direction, MsgTypeEnum[] msgTypes, boolean persist, boolean persistClear, IMMessageFilter customFilter)
查询指定时间段和消息类型的的服务端历史消息,可指定是否过滤消息通知、是否同步到数据库、是否同步被清除的消息到数据库。该方法为异步。
InvocationFuture< Void > saveMessageToLocalEx(IMMessage msg, boolean notify, long time)
保存消息到本地数据库,但不发送到服务器端。该方法为异步。 该方法用于第三方应用保存本地提醒类的消息。 将消息保存到数据库后,如需通知 UI 层更新,可将 notify 设置为 true,此时会触发 ...
void deleteRecentContact(RecentContact recent)
删除指定的最近会话记录,包括本地最近会话和漫游消息。 调用该接口删除后,不会返回回调通知。
List< StickTopSessionInfo > queryStickTopSessionBlock()
获取置顶会话信息列表。该方法为同步。
InvocationFuture< List< IMMessage > > searchAllMessageHistory(String keyword, List< String > fromAccounts, long time, int limit)
InvocationFuture< List< IMMessage > > searchMessageHistory(String keyword, List< String > fromAccounts, IMMessage anchor, QueryDirectionEnum direction, int limit)
AbortableFuture< Void > exportAllMessage(IMsgExportProcessor exportProcessor, boolean safeMode)
导出本地所有历史消息。导出消息类型包括:文本消息 、图片消息、 音频消息、 视频消息 、文件消息、自定义消息。 如果有服务端消息记录,不建议使用该接口。 整个过程如下: step1 : 消息转换成...
InvocationFuture< List< IMMessage > > queryMessageList(String account, SessionTypeEnum sessionType, long offset, int limit)
void clearServerHistory(String sessionId, SessionTypeEnum sessionType)
清空服务端单聊历史消息,默认删除漫游消息。
InvocationFuture< GetMessagesDynamicallyResult > getMessagesDynamically(GetMessagesDynamicallyParam param)
动态查询本地历史消息。该方法为异步。 该方法调用在数据同步完成后生效。该方法为完整独立的历史消息查询接口,与其他历史消息查询接口互不影响。
List< IMMessage > queryMessageListByUuidBlock(List< String > uuids)
通过 uuid 批量获取本地历史消息。该方法为同步。
InvocationFuture< ThreadTalkHistory > queryThreadTalkHistory(MessageKey threadMessageKey, QueryThreadTalkHistoryOption option)
查询服务端 Thread 历史消息(支持单聊、群、超大群)。
InvocationFuture< List< IMMessage > > pullMessageHistoryExType(IMMessage anchor, long toTime, int limit, QueryDirectionEnum direction, MsgTypeEnum[] msgTypes, boolean persist, boolean persistClear, IMMessageFilter customFilter, boolean updateUnread)
查询指定时间段和消息类型的的服务端历史消息,可指定是否计算消息未读数、是否过滤消息通知、是否同步到数据库、是否同步被清除的消息到数据库。该方法为异步。
RecentContact createEmptyRecentContact(String contactId, SessionTypeEnum sessionType, long tag, long time, boolean saveToDB, boolean withLastMsg)
创建一条空的最近会话。
InvocationFuture< Long > deleteMsgSelf(IMMessage msg, String ext)
单向删除指定消息,并同时单向删除服务端历史消息、漫游消息。该方法为异步。 用户单向删除一条消息成功后,该账号下不再能从服务端拉取到该条消息。而且,本端登录此账号的其他端都会删除本地的该消息记录。其他账...
List< RecentContact > queryRecentContactsBlock()
查询全部最近会话。该接口为同步。
InvocationFuture< List< IMMessage > > pullMessageHistory(IMMessage anchor, int limit, boolean persist)
从后向前批量查询服务端历史消息。该方法为异步。
List< MsgIndexRecord > searchSessionBlock(String query, SessionTypeEnum sessionType, String sessionId)
指定关键字检索指定的会话。该方法为同步。
InvocationFuture< List< IMMessage > > queryMessageListByTypes(List< MsgTypeEnum > types, IMMessage anchor, long toTime, QueryDirectionEnum direction, int limit, boolean asc)
AbortableFuture< Void > importAllMessage(IMsgImportProcessor iMsgImportProcessor, boolean safeMode)
导入已导出的历史消息。
int queryReplyCountInThreadTalkBlock(IMMessage msg)
获取指定 Thread 的回复消息条数。
void updateRecent(RecentContact recent)
更新指定的最近会话。 如需收到更新的回调通知,可使用 MsgService#updateRecentAndNotify(RecentContact)。
NIM消息实体数据结构。 第三方APP不要调用设置类接口,调用之后不会被持久化