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

详细描述

IM SDK 主核心类,负责 IM SDK 的初始化、登录、消息收发,建群退群等功能。

Public 成员函数

abstract boolean initSDK (Context context, int sdkAppID, V2TIMSDKConfig config)
 
abstract void unInitSDK ()
 
abstract void addIMSDKListener (V2TIMSDKListener listener)
 
abstract void removeIMSDKListener (V2TIMSDKListener listener)
 
abstract String getVersion ()
 
abstract long getServerTime ()
 
abstract boolean initSDK (Context context, int sdkAppID, V2TIMSDKConfig config, V2TIMSDKListener listener)
 
abstract void login (String userID, String userSig, V2TIMCallback callback)
 
abstract void logout (V2TIMCallback callback)
 
abstract String getLoginUser ()
 
abstract int getLoginStatus ()
 
abstract void addSimpleMsgListener (V2TIMSimpleMsgListener v2TIMSimpleMsgListener)
 
abstract void removeSimpleMsgListener (V2TIMSimpleMsgListener v2TIMSimpleMsgListener)
 
abstract String sendC2CTextMessage (String text, String userID, V2TIMValueCallback< V2TIMMessage > callback)
 
abstract String sendC2CCustomMessage (byte[] customData, String userID, V2TIMValueCallback< V2TIMMessage > callback)
 
abstract String sendGroupTextMessage (String text, String groupID, int priority, V2TIMValueCallback< V2TIMMessage > callback)
 
abstract String sendGroupCustomMessage (byte[] customData, String groupID, int priority, V2TIMValueCallback< V2TIMMessage > callback)
 
abstract void setGroupListener (V2TIMGroupListener listener)
 
abstract void addGroupListener (V2TIMGroupListener listener)
 
abstract void removeGroupListener (V2TIMGroupListener listener)
 
abstract void createGroup (String groupType, String groupID, String groupName, V2TIMValueCallback< String > callback)
 
abstract void joinGroup (String groupID, String message, V2TIMCallback callback)
 
abstract void quitGroup (String groupID, final V2TIMCallback callback)
 
abstract void dismissGroup (String groupID, final V2TIMCallback callback)
 
abstract void getUsersInfo (List< String > userIDList, V2TIMValueCallback< List< V2TIMUserFullInfo >> callback)
 
abstract void setSelfInfo (V2TIMUserFullInfo info, V2TIMCallback callback)
 
abstract void subscribeUserInfo (List< String > userIDList, V2TIMCallback callback)
 
abstract void unsubscribeUserInfo (List< String > userIDList, V2TIMCallback callback)
 
abstract void getUserStatus (List< String > userIDList, V2TIMValueCallback< List< V2TIMUserStatus >> callback)
 
abstract void setSelfStatus (V2TIMUserStatus status, V2TIMCallback callback)
 
abstract void subscribeUserStatus (List< String > userIDList, V2TIMCallback callback)
 
abstract void unsubscribeUserStatus (List< String > userIDList, V2TIMCallback callback)
 
abstract void callExperimentalAPI (String api, Object param, V2TIMValueCallback< Object > callback)
 

静态 Public 成员函数

static V2TIMManager getInstance ()
 
static V2TIMMessageManager getMessageManager ()
 
static V2TIMGroupManager getGroupManager ()
 
static V2TIMCommunityManager getCommunityManager ()
 
static V2TIMConversationManager getConversationManager ()
 
static V2TIMFriendshipManager getFriendshipManager ()
 
static V2TIMOfflinePushManager getOfflinePushManager ()
 
static V2TIMSignalingManager getSignalingManager ()
 

静态 Public 属性

static final int V2TIM_STATUS_LOGINED = 1
 
static final int V2TIM_STATUS_LOGINING = 2
 
static final int V2TIM_STATUS_LOGOUT = 3
 
static final String GROUP_TYPE_WORK = "Work"
 
static final String GROUP_TYPE_PUBLIC = "Public"
 
static final String GROUP_TYPE_MEETING = "Meeting"
 
static final String GROUP_TYPE_AVCHATROOM = "AVChatRoom"
 
static final String GROUP_TYPE_COMMUNITY = "Community"
 

成员函数说明

◆ getInstance()

static V2TIMManager getInstance ( )
inlinestatic

1.1 获取 V2TIMManager 管理器实例。

◆ initSDK() [1/2]

abstract boolean initSDK ( Context  context,
int  sdkAppID,
V2TIMSDKConfig  config 
)
abstract

1.2 初始化 SDK

参数
context上下文
sdkAppID应用 ID,必填项,可以在控制台中获取
config配置信息
返回
true:成功;false:失败,如果 context 为空会返回失败

◆ unInitSDK()

abstract void unInitSDK ( )
abstract

1.3 反初始化 SDK

◆ addIMSDKListener()

abstract void addIMSDKListener ( V2TIMSDKListener  listener)
abstract

1.4 添加 IM 监听

◆ removeIMSDKListener()

abstract void removeIMSDKListener ( V2TIMSDKListener  listener)
abstract

1.5 移除 IM 监听

◆ getVersion()

abstract String getVersion ( )
abstract

1.6 获取 SDK 版本

返回

◆ getServerTime()

abstract long getServerTime ( )
abstract

1.7 获取服务器当前时间

返回
UTC 时间戳,单位 s

◆ initSDK() [2/2]

abstract boolean initSDK ( Context  context,
int  sdkAppID,
V2TIMSDKConfig  config,
V2TIMSDKListener  listener 
)
abstract

1.8 初始化 SDK

参数
context上下文
sdkAppID应用 ID,必填项,可以在控制台中获取
config配置信息
listenerSDK的回调
返回
true:成功;false:失败,如果 context 为空会返回失败

◆ login()

abstract void login ( String  userID,
String  userSig,
V2TIMCallback  callback 
)
abstract

2.1 登录

登录需要设置用户名 userID 和用户签名 userSig,userSig 生成请参考 UserSig 后台 API

注意
请注意如下特殊逻辑:
  • 登陆时票据过期:login 函数的回调会返回 ERR_USER_SIG_EXPIRED(6206)或者 ERR_SVR_ACCOUNT_USERSIG_EXPIRED(70001) 错误码,此时请您生成新的 userSig 重新登录。
  • 在线时票据过期:用户在线期间也可能收到 V2TIMListener -> onUserSigExpired 回调,此时也是需要您生成新的 userSig 并重新登录。
  • 在线时被踢下线:用户在线情况下被踢,SDK 会通过 V2TIMListener -> onKickedOffline 回调通知给您,此时可以 UI 提示用户,并再次调用 login() 重新登录。
  • 同平台多设备在线:该功能为IM旗舰版功能,购买旗舰版套餐包后可使用,详见价格说明

◆ logout()

abstract void logout ( V2TIMCallback  callback)
abstract

2.2 登出

退出登录,如果切换账号,需要 logout 回调成功或者失败后才能再次 login,否则 login 可能会失败。

◆ getLoginUser()

abstract String getLoginUser ( )
abstract

2.3 获取登录用户

◆ getLoginStatus()

abstract int getLoginStatus ( )
abstract

2.4 获取登录状态

如果用户已经处于已登录和登录中状态,请勿再频繁调用登录接口登录。

返回
登录状态

◆ addSimpleMsgListener()

abstract void addSimpleMsgListener ( V2TIMSimpleMsgListener  v2TIMSimpleMsgListener)
abstract

3.1 设置基本消息(文本消息和自定义消息)的事件监听器

注意
图片消息、视频消息、语音消息等高级消息的监听,请参考: V2TIMMessageManager.addAdvancedMsgListener(V2TIMAdvancedMsgListener)

◆ removeSimpleMsgListener()

abstract void removeSimpleMsgListener ( V2TIMSimpleMsgListener  v2TIMSimpleMsgListener)
abstract

3.2 移除基本消息(文本消息和自定义消息)的事件监听器

◆ sendC2CTextMessage()

abstract String sendC2CTextMessage ( String  text,
String  userID,
V2TIMValueCallback< V2TIMMessage callback 
)
abstract

3.3 发送单聊普通文本消息(最大支持 12KB)

文本消息支持云端的脏词过滤,如果用户发送的消息中有敏感词,callback 回调将会返回 80001 错误码。

返回
返回消息的唯一标识 ID
注意
该接口发送的消息默认会推送(前提是在 V2TIMOfflinePushManager 开启了推送),如果需要自定义推送(标题和内容),请调用 V2TIMMessageManager.sendMessage 接口。

◆ sendC2CCustomMessage()

abstract String sendC2CCustomMessage ( byte []  customData,
String  userID,
V2TIMValueCallback< V2TIMMessage callback 
)
abstract

3.4 发送单聊自定义(信令)消息(最大支持 12KB)

自定义消息本质就是一端二进制 buffer,您可以在其上自由组织自己的消息格式(常用于发送信令),但是自定义消息不支持云端敏感词过滤。

返回
返回消息的唯一标识 ID
注意
该接口发送的消息默认不会推送,如果需要推送,请调用 V2TIMMessageManager.sendMessage 接口。

◆ sendGroupTextMessage()

abstract String sendGroupTextMessage ( String  text,
String  groupID,
int  priority,
V2TIMValueCallback< V2TIMMessage callback 
)
abstract

3.5 发送群聊普通文本消息(最大支持 12KB)

参数
priority设置消息的优先级,我们没有办法所有消息都能 100% 送达每一个用户,但高优先级的消息会有更高的送达成功率。
  • V2TIMMessage.V2TIM_PRIORITY_HIGH:云端会优先传输,适用于在群里发送重要消息,比如主播发送的文本消息等。
  • V2TIMMessage.V2TIM_PRIORITY_NORMAL:云端按默认优先级传输,适用于在群里发送非重要消息,比如观众发送的弹幕消息等。
返回
返回消息的唯一标识 ID
注意
该接口发送的消息默认会推送(前提是在 V2TIMOfflinePushManager 开启了推送),如果需要自定义推送(标题和内容),请调用 V2TIMMessageManager.sendMessage 接口。

◆ sendGroupCustomMessage()

abstract String sendGroupCustomMessage ( byte []  customData,
String  groupID,
int  priority,
V2TIMValueCallback< V2TIMMessage callback 
)
abstract

3.6 发送群聊自定义(信令)消息(最大支持 12KB)

参数
priority设置消息的优先级,我们没有办法所有消息都能 100% 送达每一个用户,但高优先级的消息会有更高的送达成功率。
  • V2TIMMessage.V2TIM_PRIORITY_HIGH:云端会优先传输,适用于在群里发送重要信令,比如连麦邀请,PK邀请、礼物赠送等关键性信令。
  • V2TIMMessage.V2TIM_PRIORITY_NORMAL:云端按默认优先级传输,适用于在群里发送非重要信令,比如观众的点赞提醒等等。
返回
返回消息的唯一标识 ID
注意
该接口发送的消息默认不会推送,如果需要推送,请调用 V2TIMMessageManager.sendMessage 接口。

◆ setGroupListener()

abstract void setGroupListener ( V2TIMGroupListener  listener)
abstract

4.1 设置群组监听器

◆ addGroupListener()

abstract void addGroupListener ( V2TIMGroupListener  listener)
abstract

4.2 添加群组监听器

◆ removeGroupListener()

abstract void removeGroupListener ( V2TIMGroupListener  listener)
abstract

4.3 移除群组监听器

◆ createGroup()

abstract void createGroup ( String  groupType,
String  groupID,
String  groupName,
V2TIMValueCallback< String >  callback 
)
abstract

4.4 创建群组

参数
groupType群类型,我们为您预定义好了几种常用的群类型,您也可以在控制台定义自己需要的群类型:
  • "Work" :工作群,成员上限 200 人,不支持由用户主动加入,需要他人邀请入群,适合用于类似微信中随意组建的工作群(对应老版本的 Private 群)。
  • "Public" :公开群,成员上限 2000 人,任何人都可以申请加群,但加群需群主或管理员审批,适合用于类似 QQ 中由群主管理的兴趣群。
  • "Meeting" :会议群,成员上限 6000 人,任何人都可以自由进出,且加群无需被审批,适合用于视频会议和在线培训等场景(对应老版本的 ChatRoom 群)。
  • "Community" :社群,成员上限 100000 人,任何人都可以自由进出,且加群无需被审批,适合用于知识分享和游戏交流等超大社区群聊场景。5.8 版本开始支持,需要您购买旗舰版套餐。
  • "AVChatRoom" :直播群,人数无上限,任何人都可以自由进出,消息吞吐量大,适合用作直播场景中的高并发弹幕聊天室。
groupID自定义群组 ID,可以传 null。传 null 时系统会自动分配 groupID,并通过 callback 返回。 "Community" 类型自定义群组 ID 必须以 "@TGS#_" 作为前缀。
groupName群名称,不能为 null,最长 100 字节,使用 UTF-8 编码,1 个汉字占 3 个字节。
注意
请注意如下特殊逻辑:
  • 不支持在同一个 SDKAPPID 下创建两个相同 groupID 的群。
  • 社群(Community)功能仅 5.8.1668 增强版及以上版本支持,需购买旗舰版套餐包申请开通后方可使用。
  • 直播群(AVChatRoom):在进程重启或重新登录之后,如果想继续接收直播群的消息,请您调用 joinGroup 重新加入直播群。

◆ joinGroup()

abstract void joinGroup ( String  groupID,
String  message,
V2TIMCallback  callback 
)
abstract

4.5 加入群组

注意
请注意如下特殊逻辑:
  • 工作群(Work):不能主动入群,只能通过群成员调用 V2TIMManager.getGroupManager().inviteUserToGroup() 接口邀请入群。
  • 公开群(Public):申请入群后,需要管理员审批,管理员在收到 V2TIMGroupListener -> onReceiveJoinApplication 回调后调用 V2TIMManager.getGroupManager().getGroupApplicationList() 接口处理加群请求。
  • 其他群:可以直接入群。
  • 直播群(AVChatRoom):在进程重启或重新登录之后,如果想继续接收直播群的消息,请您调用 joinGroup 重新加入直播群。
  • 直播群(AVChatRoom):直播群新成员可以查看入群前消息,该功能为 IM 旗舰版功能,购买旗舰版套餐包后可使用,详见价格说明

◆ quitGroup()

abstract void quitGroup ( String  groupID,
final V2TIMCallback  callback 
)
abstract

4.6 退出群组

注意
在公开群(Public)、会议(Meeting)和直播群(AVChatRoom)中,群主是不可以退群的,群主只能调用 dismissGroup 解散群组。

◆ dismissGroup()

abstract void dismissGroup ( String  groupID,
final V2TIMCallback  callback 
)
abstract

4.7 解散群组

注意
请注意如下特殊逻辑:
  • 好友工作群(Work)的解散最为严格,即使群主也不能随意解散,只能由您的业务服务器调用 解散群组 REST API 解散。
  • 其他类型群的群主可以解散群组。

◆ getUsersInfo()

abstract void getUsersInfo ( List< String >  userIDList,
V2TIMValueCallback< List< V2TIMUserFullInfo >>  callback 
)
abstract

5.1 获取用户资料

注意
  • 获取自己的资料,传入自己的 ID 即可。
  • userIDList 建议一次最大 100 个,因为数量过多可能会导致数据包太大被后台拒绝,后台限制数据包最大为 1M。

◆ setSelfInfo()

abstract void setSelfInfo ( V2TIMUserFullInfo  info,
V2TIMCallback  callback 
)
abstract

5.2 修改个人资料

◆ subscribeUserInfo()

abstract void subscribeUserInfo ( List< String >  userIDList,
V2TIMCallback  callback 
)
abstract

5.3 订阅用户资料,从 7.4 版本开始支持

参数
userIDList待订阅的用户 ID
注意
  • 该接口用于订阅陌生人的资料变更事件,订阅成功后,当订阅用户资料发生变更,您可以通过监听 onUserInfoChanged 回调来感知
  • 订阅列表最多允许订阅 200 个,超过限制后,会自动淘汰最先订阅的用户
  • 自己的资料变更通知不需要订阅,默认会通过 onSelfInfoUpdated 回调通知给您
  • 好友的资料变更通知不需要订阅,默认会通过 onFriendInfoChange 回调通知给您
  • 该功能为 IM 旗舰版功能,购买旗舰版套餐包后可使用,详见价格说明

◆ unsubscribeUserInfo()

abstract void unsubscribeUserInfo ( List< String >  userIDList,
V2TIMCallback  callback 
)
abstract

5.4 取消订阅用户资料,从 7.4 版本开始支持

参数
userIDList需要取消订阅的用户 ID
注意

◆ getUserStatus()

abstract void getUserStatus ( List< String >  userIDList,
V2TIMValueCallback< List< V2TIMUserStatus >>  callback 
)
abstract

5.5 查询用户状态,从 6.3 版本开始支持

参数
userIDList需要获取的用户 ID
注意
  • 如果您想查询自己的自定义状态,您只需要传入自己的 userID 即可
  • 当您批量查询时,接口只会返回查询成功的用户状态信息;当所有用户均查询失败时,接口会报错
  • 查询其他用户状态为 IM 旗舰版功能,购买旗舰版套餐包后可使用,详见价格说明

◆ setSelfStatus()

abstract void setSelfStatus ( V2TIMUserStatus  status,
V2TIMCallback  callback 
)
abstract

5.6 设置自己的状态,从 6.3 版本开始支持

参数
status待设置的自定义状态
注意
该接口只支持设置自己的自定义状态,即 V2TIMUserStatus.customStatus

◆ subscribeUserStatus()

abstract void subscribeUserStatus ( List< String >  userIDList,
V2TIMCallback  callback 
)
abstract

5.7 订阅用户状态,从 6.3 版本开始支持

参数
userIDList待订阅的用户 ID
注意
  • 当成功订阅用户状态后,当对方的状态(包含在线状态、自定义状态)发生变更后,您可以监听 @onUserStatusChanged 回调来感知
  • 如果您需要订阅好友列表的状态,您只需要在控制台上打开开关即可,无需调用该接口
  • 该接口不支持订阅自己,您可以通过监听 @onUserStatusChanged 回调来感知自身的自定义状态的变更
  • 订阅列表最多允许订阅 200 个,超过限制后,会自动淘汰最先订阅的用户
  • 该功能为 IM 旗舰版功能,购买旗舰版套餐包后可使用,详见价格说明

◆ unsubscribeUserStatus()

abstract void unsubscribeUserStatus ( List< String >  userIDList,
V2TIMCallback  callback 
)
abstract

5.8 取消订阅用户状态,从 6.3 版本开始支持

注意

◆ getMessageManager()

static V2TIMMessageManager getMessageManager ( )
inlinestatic

高级消息功能入口

返回
高级消息管理类实例

◆ getGroupManager()

static V2TIMGroupManager getGroupManager ( )
inlinestatic

高级群组功能入口

返回
高级群组管理类实例

◆ getCommunityManager()

static V2TIMCommunityManager getCommunityManager ( )
inlinestatic

社群功能入口

返回
社群管理类实例

◆ getConversationManager()

static V2TIMConversationManager getConversationManager ( )
inlinestatic

会话功能入口

返回
会话管理类实例

◆ getFriendshipManager()

static V2TIMFriendshipManager getFriendshipManager ( )
inlinestatic

关系链功能入口

返回
关系链管理类实例

◆ getOfflinePushManager()

static V2TIMOfflinePushManager getOfflinePushManager ( )
inlinestatic

离线推送功能入口

返回
离线推送功能类实例

◆ getSignalingManager()

static V2TIMSignalingManager getSignalingManager ( )
inlinestatic

信令入口

返回
信令管理类实例

◆ callExperimentalAPI()

abstract void callExperimentalAPI ( String  api,
Object  param,
V2TIMValueCallback< Object >  callback 
)
abstract

实验性 API 接口

参数
api接口名称
param接口参数
注意
该接口提供一些实验性功能

结构体成员变量说明

◆ V2TIM_STATUS_LOGINED

final int V2TIM_STATUS_LOGINED = 1
static

已登录

◆ V2TIM_STATUS_LOGINING

final int V2TIM_STATUS_LOGINING = 2
static

登录中

◆ V2TIM_STATUS_LOGOUT

final int V2TIM_STATUS_LOGOUT = 3
static

无登录

◆ GROUP_TYPE_WORK

final String GROUP_TYPE_WORK = "Work"
static

工作群

◆ GROUP_TYPE_PUBLIC

final String GROUP_TYPE_PUBLIC = "Public"
static

公开群

◆ GROUP_TYPE_MEETING

final String GROUP_TYPE_MEETING = "Meeting"
static

会议群

◆ GROUP_TYPE_AVCHATROOM

final String GROUP_TYPE_AVCHATROOM = "AVChatRoom"
static

直播群

◆ GROUP_TYPE_COMMUNITY

final String GROUP_TYPE_COMMUNITY = "Community"
static

社群