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

详细描述

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

Public 成员函数

abstract boolean initSDK (Context context, int sdkAppID, V2TIMSDKConfig config, V2TIMSDKListener listener)
 
abstract void unInitSDK ()
 
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 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)
 

静态 Public 成员函数

static V2TIMManager getInstance ()
 
static V2TIMMessageManager getMessageManager ()
 
static V2TIMGroupManager getGroupManager ()
 
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"
 

成员函数说明

◆ getInstance()

static V2TIMManager getInstance ( )
inlinestatic

1.1 获取 V2TIMManager 管理器实例。

◆ initSDK()

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

1.2 初始化 SDK

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

◆ unInitSDK()

abstract void unInitSDK ( )
abstract

1.3 反初始化 SDK

◆ login()

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

2.1 登录

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

注意
请注意如下特殊逻辑:
  • 登陆时票据过期:login 函数的回调会返回 ERR_USER_SIG_EXPIRED:6206 错误码,此时生成新的 userSig 重新登录。
  • 在线时票据过期:用户在线期间也可能收到 V2TIMListener -> onUserSigExpired 回调,此时也是需要您生成新的 userSig 并重新登录。
  • 在线时被踢下线:用户在线情况下被踢,SDK 会通过 V2TIMListener -> onKickedOffline 回调通知给您,此时可以 UI 提示用户,并再次调用 login() 重新登录。

◆ 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 发送单聊普通文本消息(最大支持 8KB)

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

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

◆ sendC2CCustomMessage()

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

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

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

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

◆ sendGroupTextMessage()

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

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

参数
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 发送群聊自定义(信令)消息(最大支持 8KB)

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

◆ setGroupListener()

abstract void setGroupListener ( V2TIMGroupListener  listener)
abstract

4.1 设置群组监听器

◆ createGroup()

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

4.2 创建群组

参数
groupType群类型,我们为您预定义好了四种常用的群类型,您也可以在控制台定义自己需要的群类型:
  • "Work" :工作群,成员上限 200 人,不支持由用户主动加入,需要他人邀请入群,适合用于类似微信中随意组建的工作群(对应老版本的 Private 群)。
  • "Public" :公开群,成员上限 2000 人,任何人都可以申请加群,但加群需群主或管理员审批,适合用于类似 QQ 中由群主管理的兴趣群。
  • "Meeting" :会议群,成员上限 6000 人,任何人都可以自由进出,且加群无需被审批,适合用于视频会议和在线培训等场景(对应老版本的 ChatRoom 群)。
  • "AVChatRoom" :直播群,人数无上限,任何人都可以自由进出,消息吞吐量大,适合用作直播场景中的高并发弹幕聊天室。
groupID自定义群组 ID,可以传 null。传 null 时系统会自动分配 groupID,并通过 callback 返回。
groupName群名称,不能为 null。
注意
请注意如下特殊逻辑:
  • 不支持在同一个 SDKAPPID 下创建两个相同 groupID 的群

◆ joinGroup()

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

4.3 加入群组

注意
请注意如下特殊逻辑:
  • 工作群(Work):不能主动入群,只能通过群成员调用 V2TIMManager.getGroupManager().inviteUserToGroup() 接口邀请入群。
  • 公开群(Public):申请入群后,需要管理员审批,管理员在收到 V2TIMGroupListener -> onReceiveJoinApplication 回调后调用 V2TIMManager.getGroupManager().getGroupApplicationList() 接口处理加群请求。
  • 其他群:可以直接入群。

◆ quitGroup()

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

4.4 退出群组

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

◆ dismissGroup()

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

4.5 解散群组

注意
请注意如下特殊逻辑:
  • Work:任何人都无法解散群组。
  • 其他群:群主可以解散群组。

◆ 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 修改个人资料

◆ getMessageManager()

static V2TIMMessageManager getMessageManager ( )
inlinestatic

高级消息功能入口

返回
高级消息管理类实例

◆ getGroupManager()

static V2TIMGroupManager getGroupManager ( )
inlinestatic

高级群组功能入口

返回
高级群组管理类实例

◆ getConversationManager()

static V2TIMConversationManager getConversationManager ( )
inlinestatic

会话功能入口

返回
会话管理类实例

◆ getFriendshipManager()

static V2TIMFriendshipManager getFriendshipManager ( )
inlinestatic

关系链功能入口

返回
关系链管理类实例

◆ getOfflinePushManager()

static V2TIMOfflinePushManager getOfflinePushManager ( )
inlinestatic

离线推送功能入口

返回
离线推送功能类实例

◆ getSignalingManager()

static V2TIMSignalingManager getSignalingManager ( )
inlinestatic

信令入口

返回
信令管理类实例

结构体成员变量说明

◆ 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

直播群