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

详细描述

会话接口,包含了会话的获取,删除和更新的逻辑

Public 成员函数

abstract void addConversationListener (V2TIMConversationListener listener)
 
abstract void removeConversationListener (V2TIMConversationListener listener)
 
abstract void getConversationList (long nextSeq, int count, V2TIMValueCallback< V2TIMConversationResult > callback)
 
abstract void getConversation (String conversationID, V2TIMValueCallback< V2TIMConversation > callback)
 
abstract void getConversationList (List< String > conversationIDList, V2TIMValueCallback< List< V2TIMConversation >> callback)
 
abstract void getConversationListByFilter (V2TIMConversationListFilter filter, long nextSeq, int count, V2TIMValueCallback< V2TIMConversationResult > callback)
 
abstract void deleteConversation (String conversationID, V2TIMCallback callback)
 
abstract void deleteConversationList (List< String > conversationIDList, boolean clearMessage, V2TIMValueCallback< List< V2TIMConversationOperationResult >> callback)
 
abstract void setConversationDraft (String conversationID, String draftText, V2TIMCallback callback)
 
abstract void setConversationCustomData (List< String > conversationIDList, String customData, V2TIMValueCallback< List< V2TIMConversationOperationResult >> callback)
 
abstract void pinConversation (String conversationID, boolean isPinned, V2TIMCallback callback)
 
abstract void markConversation (List< String > conversationIDList, long markType, boolean enableMark, V2TIMValueCallback< List< V2TIMConversationOperationResult >> callback)
 
abstract void getTotalUnreadMessageCount (V2TIMValueCallback< Long > callback)
 
abstract void getUnreadMessageCountByFilter (V2TIMConversationListFilter filter, V2TIMValueCallback< Long > callback)
 
abstract void subscribeUnreadMessageCountByFilter (V2TIMConversationListFilter filter)
 
abstract void unsubscribeUnreadMessageCountByFilter (V2TIMConversationListFilter filter)
 
abstract void cleanConversationUnreadMessageCount (String conversationID, long cleanTimestamp, long cleanSequence, V2TIMCallback callback)
 
abstract void setConversationListener (V2TIMConversationListener listener)
 
abstract void createConversationGroup (String groupName, List< String > conversationIDList, V2TIMValueCallback< List< V2TIMConversationOperationResult >> callback)
 
abstract void getConversationGroupList (V2TIMValueCallback< List< String >> callback)
 
abstract void deleteConversationGroup (String groupName, V2TIMCallback callback)
 
abstract void renameConversationGroup (String oldName, String newName, V2TIMCallback callback)
 
abstract void addConversationsToGroup (String groupName, List< String > conversationIDList, V2TIMValueCallback< List< V2TIMConversationOperationResult >> callback)
 
abstract void deleteConversationsFromGroup (String groupName, List< String > conversationIDList, V2TIMValueCallback< List< V2TIMConversationOperationResult >> callback)
 

成员函数说明

◆ addConversationListener()

abstract void addConversationListener ( V2TIMConversationListener  listener)
abstract

1.1 添加会话监听器

◆ removeConversationListener()

abstract void removeConversationListener ( V2TIMConversationListener  listener)
abstract

1.2 移除会话监听器

◆ getConversationList() [1/2]

abstract void getConversationList ( long  nextSeq,
int  count,
V2TIMValueCallback< V2TIMConversationResult callback 
)
abstract

1.3 获取会话列表

  • 一个会话对应一个聊天窗口,比如跟一个好友的 1v1 聊天,或者一个聊天群,都是一个会话。
  • 由于历史的会话数量可能很多,所以该接口希望您采用分页查询的方式进行调用,每次分页拉取的个数建议为 100 个。
  • 该接口拉取的是本地缓存的会话,如果服务器会话有更新,SDK 内部会自动同步,然后在 V2TIMConversationListener 回调告知客户。
  • 如果会话全部拉取完毕,成功回调里面 V2TIMConversationResult 中的 isFinished 获取字段值为 true。
注意
会话排序规则
  • 5.5.892 及以后版本, 该接口获取的会话列表默认已经按照会话 orderKey 做了排序,orderKey 值越大,代表该会话排序越靠前。
  • 5.5.892 以前版本,该接口获取的会话列表默认已经按照会话 lastMessage -> timestamp 做了排序,timestamp 越大,会话越靠前。
参数
nextSeq分页拉取的游标,第一次默认取传 0,后续分页拉传上一次分页拉取成功回调里的 nextSeq
count分页拉取的个数,一次分页拉取不宜太多,会影响拉取的速度,建议每次拉取 100 个会话

◆ getConversation()

abstract void getConversation ( String  conversationID,
V2TIMValueCallback< V2TIMConversation callback 
)
abstract

1.4 获取单个会话

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")

◆ getConversationList() [2/2]

abstract void getConversationList ( List< String >  conversationIDList,
V2TIMValueCallback< List< V2TIMConversation >>  callback 
)
abstract

1.5 获取指定会话列表

参数
conversationIDList会话唯一 ID 列表,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")

◆ getConversationListByFilter()

abstract void getConversationListByFilter ( V2TIMConversationListFilter  filter,
long  nextSeq,
int  count,
V2TIMValueCallback< V2TIMConversationResult callback 
)
abstract

1.6 获取会话列表高级接口

参数
filter会话 filter
nextSeq分页拉取的游标
count分页拉取的个数

◆ deleteConversation()

abstract void deleteConversation ( String  conversationID,
V2TIMCallback  callback 
)
abstract

1.7 删除会话

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")
注意
  • 删除会话会在本地删除的同时,在服务器也会同步删除。
  • 会话内的消息在本地删除的同时,在服务器也会同步删除。

◆ deleteConversationList()

abstract void deleteConversationList ( List< String >  conversationIDList,
boolean  clearMessage,
V2TIMValueCallback< List< V2TIMConversationOperationResult >>  callback 
)
abstract

1.8 删除会话列表(7.1 及以上版本支持)

参数
conversationIDList会话唯一 ID 列表,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")
clearMessage是否删除会话中的消息;设置为 false 时,保留会话消息;设置为 true 时,本地和服务器的消息会一起删除,并且不可恢复
注意
每次最多支持删除 100 个会话

◆ setConversationDraft()

abstract void setConversationDraft ( String  conversationID,
String  draftText,
V2TIMCallback  callback 
)
abstract

1.9 设置会话草稿

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")

只在本地保存,不会存储 Server,不能多端同步,程序卸载重装会失效。

参数
draftText草稿内容, 为 null 则表示取消草稿

◆ setConversationCustomData()

abstract void setConversationCustomData ( List< String >  conversationIDList,
String  customData,
V2TIMValueCallback< List< V2TIMConversationOperationResult >>  callback 
)
abstract

1.10 设置会话自定义数据(从 6.5 版本开始支持)

参数
customData自定义数据,最大支持 256 bytes

◆ pinConversation()

abstract void pinConversation ( String  conversationID,
boolean  isPinned,
V2TIMCallback  callback 
)
abstract

1.11 设置会话置顶(5.3.425 及以上版本支持)

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")
isPinned是否置顶

◆ markConversation()

abstract void markConversation ( List< String >  conversationIDList,
long  markType,
boolean  enableMark,
V2TIMValueCallback< List< V2TIMConversationOperationResult >>  callback 
)
abstract

1.12 标记会话(从 6.5 版本开始支持,需要您购买旗舰版套餐)

参数
conversationIDList会话列表
markType会话标记类型,取值详见 V2TIMConversation
enableMarktrue:设置标记 false:取消标记

如果已有标记不能满足您的需求,您可以自定义扩展标记,扩展标记需要满足以下两个条件:

1、扩展标记值不能和 V2TIMConversation 已有的标记值冲突

2、扩展标记值必须是 0x1L << n 的位移值(32 <= n < 64,即 n 必须大于等于 32 并且小于 64),比如自定义 0x1L << 32 标记值表示 "iPhone 在线"

注意
扩展标记值不能设置为 0x1 << 32,要设置为 0x1L << 32,明确告诉编译器是 64 位的整型常量。

◆ getTotalUnreadMessageCount()

abstract void getTotalUnreadMessageCount ( V2TIMValueCallback< Long >  callback)
abstract

1.13 获取全部会话的未读总数(5.3.425 及以上版本支持)

注意
  • 调用该接口以后,任意会话的未读数发生变化时,SDK 都会给您抛 onTotalUnreadMessageCountChanged 回调。
  • 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT 的会话。

◆ getUnreadMessageCountByFilter()

abstract void getUnreadMessageCountByFilter ( V2TIMConversationListFilter  filter,
V2TIMValueCallback< Long >  callback 
)
abstract

1.14 获取按会话 filter 过滤的未读总数(7.0 及以上版本支持)

参数
filter会话 filter
注意
  • 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT 的会话。

◆ subscribeUnreadMessageCountByFilter()

abstract void subscribeUnreadMessageCountByFilter ( V2TIMConversationListFilter  filter)
abstract

1.15 注册监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)

参数
filter会话 filter
注意
  • 当您调用这个接口以后,该 filter 下的未读数发生变化时,SDK 会给您抛 onUnreadMessageCountChangedByFilter 回调。

◆ unsubscribeUnreadMessageCountByFilter()

abstract void unsubscribeUnreadMessageCountByFilter ( V2TIMConversationListFilter  filter)
abstract

1.16 取消监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)

参数
filter会话 filter

◆ cleanConversationUnreadMessageCount()

abstract void cleanConversationUnreadMessageCount ( String  conversationID,
long  cleanTimestamp,
long  cleanSequence,
V2TIMCallback  callback 
)
abstract

1.17 清理会话的未读消息计数(7.1 及以上版本支持)

参数
conversationID会话唯一 ID, C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")
cleanTimestamp清理时间戳,单位为秒,仅对单聊会话生效,指定清理哪一个 timestamp 之前的未读消息计数;当传入为 0 时,对应会话所有的未读消息将被清理,会话的未读数会清 0
cleanSequence清理 sequence,仅对群聊会话生效,指定清理哪一个 sequence 之前的未读消息计数;当传入为 0 时,对应会话所有的未读消息将被清理,会话的未读数会清 0
注意
  • 当您想清理所有单聊会话的未读消息计数,conversationID 请传入 "c2c",即不指定具体的 userID;
  • 当您想清理所有群聊会话的未读消息计数,conversationID 请传入 "group",即不指定具体的 groupID;
  • 当您想清理所有会话的未读消息计数,conversationID 请传入 "" 或者 null;
  • 该接口调用成功后,SDK 会通过 onConversationChanged 回调将对应会话的最新未读数通知给您。

◆ setConversationListener()

abstract void setConversationListener ( V2TIMConversationListener  listener)
abstract

1.18 设置会话监听器(待废弃接口,请使用 addConversationListener 和 removeConversationListener 接口)

◆ createConversationGroup()

abstract void createConversationGroup ( String  groupName,
List< String >  conversationIDList,
V2TIMValueCallback< List< V2TIMConversationOperationResult >>  callback 
)
abstract

2.1 创建会话分组

参数
groupName分组名(必填参数,长度要 > 0,最大支持 32 bytes)
conversationIDList会话 ID 列表(必填参数,不能为空)
注意
会话分组最大支持 20 个,不再使用的分组请及时删除。

◆ getConversationGroupList()

abstract void getConversationGroupList ( V2TIMValueCallback< List< String >>  callback)
abstract

2.2 获取会话分组列表

注意
该接口获取的是本地缓存的会话分组,建议在 onSyncServerFinish 之后调用。

◆ deleteConversationGroup()

abstract void deleteConversationGroup ( String  groupName,
V2TIMCallback  callback 
)
abstract

2.3 删除会话分组

◆ renameConversationGroup()

abstract void renameConversationGroup ( String  oldName,
String  newName,
V2TIMCallback  callback 
)
abstract

2.4 重命名会话分组

◆ addConversationsToGroup()

abstract void addConversationsToGroup ( String  groupName,
List< String >  conversationIDList,
V2TIMValueCallback< List< V2TIMConversationOperationResult >>  callback 
)
abstract

2.5 添加会话到一个会话分组

◆ deleteConversationsFromGroup()

abstract void deleteConversationsFromGroup ( String  groupName,
List< String >  conversationIDList,
V2TIMValueCallback< List< V2TIMConversationOperationResult >>  callback 
)
abstract

2.6 从一个会话分组中删除会话