IMSDK
即时通信 IM 提供全球接入、单聊、群聊、消息推送、资料关系链托管、帐号鉴权等全方位解决方案,并提供完备的 App 接入、后台管理接口。
V2TIMMessageManagerabstract

Public 成员函数

abstract void addAdvancedMsgListener (V2TIMAdvancedMsgListener listener)
 
abstract void removeAdvancedMsgListener (V2TIMAdvancedMsgListener listener)
 
abstract V2TIMMessage createTextMessage (String text)
 
abstract V2TIMMessage createCustomMessage (byte[] data)
 
abstract V2TIMMessage createImageMessage (String imagePath)
 
abstract V2TIMMessage createSoundMessage (String soundPath, int duration)
 
abstract V2TIMMessage createVideoMessage (String videoFilePath, String type, int duration, String snapshotPath)
 
abstract V2TIMMessage createFileMessage (String filePath, String fileName)
 
abstract V2TIMMessage createLocationMessage (String desc, double longitude, double latitude)
 
abstract V2TIMMessage createFaceMessage (int index, byte[] data)
 
abstract String sendMessage (V2TIMMessage msg, String receiver, String groupID, int priority, boolean onlineUserOnly, V2TIMOfflinePushInfo offlinePushInfo, V2TIMSendCallback< V2TIMMessage > callback)
 
abstract void getC2CHistoryMessageList (String userID, int count, V2TIMMessage lastMsg, V2TIMValueCallback< List< V2TIMMessage >> callback)
 
abstract void getGroupHistoryMessageList (String groupID, int count, V2TIMMessage lastMsg, V2TIMValueCallback< List< V2TIMMessage >> callback)
 
abstract void revokeMessage (V2TIMMessage msg, V2TIMCallback callback)
 
abstract void markC2CMessageAsRead (String userID, V2TIMCallback callback)
 
abstract void markGroupMessageAsRead (String groupID, V2TIMCallback callback)
 
abstract void deleteMessageFromLocalStorage (V2TIMMessage msg, V2TIMCallback callback)
 
abstract String insertGroupMessageToLocalStorage (V2TIMMessage msg, String groupID, String sender, V2TIMValueCallback< V2TIMMessage > callback)
 

成员函数说明

◆ addAdvancedMsgListener()

abstract void addAdvancedMsgListener ( V2TIMAdvancedMsgListener  listener)
abstract

1.1 添加高级消息的事件监听器

◆ removeAdvancedMsgListener()

abstract void removeAdvancedMsgListener ( V2TIMAdvancedMsgListener  listener)
abstract

1.2 移除高级消息监听器

◆ createTextMessage()

abstract V2TIMMessage createTextMessage ( String  text)
abstract

2.1 创建文本消息

◆ createCustomMessage()

abstract V2TIMMessage createCustomMessage ( byte []  data)
abstract

2.2 创建自定义消息

◆ createImageMessage()

abstract V2TIMMessage createImageMessage ( String  imagePath)
abstract

2.3 创建图片消息(图片最大支持 28 MB)

◆ createSoundMessage()

abstract V2TIMMessage createSoundMessage ( String  soundPath,
int  duration 
)
abstract

2.4 创建语音消息(语音最大支持 28 MB)

参数
duration语音时长,单位 s

◆ createVideoMessage()

abstract V2TIMMessage createVideoMessage ( String  videoFilePath,
String  type,
int  duration,
String  snapshotPath 
)
abstract

2.5 创建视频消息(视频最大支持 100 MB)

参数
type视频类型,如 mp4 mov 等
duration视频时长,单位 s
snapshotPath视频封面图片路径

◆ createFileMessage()

abstract V2TIMMessage createFileMessage ( String  filePath,
String  fileName 
)
abstract

2.6 创建文件消息(文件最大支持 100 MB)

◆ createLocationMessage()

abstract V2TIMMessage createLocationMessage ( String  desc,
double  longitude,
double  latitude 
)
abstract

2.7 创建地理位置消息

◆ createFaceMessage()

abstract V2TIMMessage createFaceMessage ( int  index,
byte []  data 
)
abstract

2.8 创建表情消息

SDK 并不提供表情包,如果开发者有表情包,可使用 index 存储表情在表情包中的索引, 或者直接使用 data 存储表情二进制信息以及字符串 key,都由用户自定义,SDK 内部只做透传。

参数
index表情索引
data自定义数据

◆ sendMessage()

abstract String sendMessage ( V2TIMMessage  msg,
String  receiver,
String  groupID,
int  priority,
boolean  onlineUserOnly,
V2TIMOfflinePushInfo  offlinePushInfo,
V2TIMSendCallback< V2TIMMessage callback 
)
abstract

3.1 发送高级消息(高级版本:可以指定优先级,推送信息等特性)

参数
msg待发送的消息对象,需要通过对应的 createXXXMessage 接口进行创建。
receiver消息接收者的 userID, 如果是发送 C2C 单聊消息,只需要指定 receiver 即可。
groupID目标群组 ID,如果是发送群聊消息,只需要指定 groupID 即可。
priority消息优先级,仅针对群聊消息有效。请把重要消息设置为高优先级(比如红包、礼物消息),高频且不重要的消息设置为低优先级(比如点赞消息)。
onlineUserOnly是否只有在线用户才能收到,如果设置为 true ,接收方历史消息拉取不到,常被用于实现“对方正在输入”或群组里的非重要提示等弱提示功能。
offlinePushInfo离线推送时携带的标题和内容。
返回
消息唯一标识
注意
  • 设置 offlinePushInfo 字段,需要先在 V2TIMOfflinePushManager 开启推送。推送开启后,除了自定义消息,其他消息默认都会推送。
  • 自定义消息默认不会推送,如果需要推送,请设置 offlinePushInfo 的 desc 字段,推送的时候会默认展示 desc 信息。

◆ getC2CHistoryMessageList()

abstract void getC2CHistoryMessageList ( String  userID,
int  count,
V2TIMMessage  lastMsg,
V2TIMValueCallback< List< V2TIMMessage >>  callback 
)
abstract

4.1 获取单聊历史消息

参数
count拉取消息的个数,不宜太多,会影响消息拉取的速度,这里建议一次拉取 20 个
lastMsg获取消息的起始消息,如果传 null,起始消息为会话的最新消息
注意
如果 SDK 检测到没有网络,默认会直接返回本地数据

◆ getGroupHistoryMessageList()

abstract void getGroupHistoryMessageList ( String  groupID,
int  count,
V2TIMMessage  lastMsg,
V2TIMValueCallback< List< V2TIMMessage >>  callback 
)
abstract

4.2 获取群组历史消息

参数
count拉取消息的个数,不宜太多,会影响消息拉取的速度,这里建议一次拉取 20 个
lastMsg获取消息的起始消息,如果传 null,起始消息为会话的最新消息
注意
请注意:
  • 如果 SDK 检测到没有网络,默认会直接返回本地数据
  • 只有会议群(Meeting)才能拉取到进群前的历史消息,直播群(AVChatRoom)消息不存漫游和本地数据库,调用这个接口无效

◆ revokeMessage()

abstract void revokeMessage ( V2TIMMessage  msg,
V2TIMCallback  callback 
)
abstract

4.3 撤回消息

注意
请注意:
  • 撤回消息的时间限制默认 2 minutes,超过 2 minutes 的消息不能撤回,您也可以在 控制台(功能配置 -> 登录与消息 -> 消息撤回设置)自定义撤回时间限制。
  • 如果发送方撤回消息,已经收到消息的一方会收到 V2TIMAdvancedMsgListener -> onRecvMessageRevoked 回调。

◆ markC2CMessageAsRead()

abstract void markC2CMessageAsRead ( String  userID,
V2TIMCallback  callback 
)
abstract

4.4 设置单聊消息已读

◆ markGroupMessageAsRead()

abstract void markGroupMessageAsRead ( String  groupID,
V2TIMCallback  callback 
)
abstract

4.5 设置群组消息已读

◆ deleteMessageFromLocalStorage()

abstract void deleteMessageFromLocalStorage ( V2TIMMessage  msg,
V2TIMCallback  callback 
)
abstract

4.6 删除本地消息

注意
消息只能本地删除,消息删除后,SDK 会在本地把这条消息标记为已删除状态,getHistoryMessage 不能再拉取到, 但是如果程序卸载重装,本地会失去对这条消息的删除标记,getHistoryMessage 还能再拉取到该条消息。

◆ insertGroupMessageToLocalStorage()

abstract String insertGroupMessageToLocalStorage ( V2TIMMessage  msg,
String  groupID,
String  sender,
V2TIMValueCallback< V2TIMMessage callback 
)
abstract

4.7 向群组消息列表中添加一条消息

该接口主要用于满足向群组聊天会话中插入一些提示性消息的需求,比如“您已经退出该群”,这类消息有展示 在聊天消息区的需求,但并没有发送给其他人的必要。 所以 insertGroupMessageToLocalStorage() 相当于一个被禁用了网络发送能力的 sendMessage() 接口。

返回
msgID 消息唯一标识
注意
通过该接口 save 的消息只存本地,程序卸载后会丢失。