前言
最近项目集成了及时通信业务, 采用的是腾讯IM
首先是SDK的快速集成, 步骤如下:
第一步 安装依赖包
1 | implementation 'com.tencent.imsdk:imsdk-plus:5.6.1200' |
第二步 初始化SDK (需要用到appid)
1 | V2TIMManager.getInstance() |
第三步 登录IM
1 | V2TIMManager.getInstance().login( |
第四步 加入群聊房间 (如果是单聊可以跳过该步骤)
1 | V2TIMManager.getInstance().joinGroup("这里填房间号 从后台获取", "", object : V2TIMCallback { |
第五步 接收消息
如果业务不涉及音视频传输:
1 | V2TIMManager.getInstance().addSimpleMsgListener(object : |
如果业务涉及音视频传输:
1 | V2TIMManager.getMessageManager().addAdvancedMsgListener( object : V2TIMAdvancedMsgListener() { |
第六步 发送消息
如果业务不涉及音视频传输:
单聊 (分为文本消息和自定义消息)
文本消息
1
2
3
4
5
6
7
8
9
10
11
12V2TIMManager.getInstance().sendC2CTextMessage("这里填需要发送的文本",
"这里填对方的登录id",
V2TIM_PRIORITY_HIGH,
object : V2TIMValueCallback<V2TIMMessage> {
override fun onSuccess(t: V2TIMMessage?) {
Log.i(TAG, "发送单聊文本消息成功")
}
override fun onError(code: Int, desc: String?) {
Log.i(TAG, "发送单聊文本消息失败 $code $desc")
}
})自定义消息
1
2
3
4
5
6
7
8
9
10
11
12V2TIMManager.getInstance().sendC2CCustomMessage("这里填需要发送的自定义消息 格式为字节数组",
"这里填对方的登录id",
V2TIM_PRIORITY_HIGH,
object : V2TIMValueCallback<V2TIMMessage> {
override fun onSuccess(t: V2TIMMessage?) {
Log.i(TAG, "发送单聊自定义消息成功")
}
override fun onError(code: Int, desc: String?) {
Log.i(TAG, "发送单聊自定义消息失败 $code $desc")
}
})
群聊 (分为文本消息和自定义消息)
文本消息
1
2
3
4
5
6
7
8
9
10
11
12V2TIMManager.getInstance().sendGroupTextMessage("这里填需要发送的文本",
"这里填群聊房间id",
V2TIM_PRIORITY_HIGH,
object : V2TIMValueCallback<V2TIMMessage> {
override fun onSuccess(t: V2TIMMessage?) {
Log.i(TAG, "发送群文本消息成功")
}
override fun onError(code: Int, desc: String?) {
Log.i(TAG, "发送群文本消息失败 $code $desc")
}
})
自定义消息
1
2
3
4
5
6
7
8
9
10
11
12V2TIMManager.getInstance().sendGroupCustomMessage("这里填需要发送的自定义消息 格式为字节数组",
"这里填群聊房间id",
V2TIM_PRIORITY_HIGH,
object : V2TIMValueCallback<V2TIMMessage> {
override fun onSuccess(t: V2TIMMessage?) {
Log.i(TAG, "发送群自定义消息成功")
}
override fun onError(code: Int, desc: String?) {
Log.i(TAG, "发送群自定义消息失败 $code $desc")
}
})
如果业务涉及音视频传输:
该方法支持音视频图片 文本和自定义消息
1 | V2TIMManager.getMessageManager().sendMessage() |
注意事项
这里的坑主要在于消息的收发, 官方给的API比较多, 单聊和群聊串在一块, 看文档有时容易懵, 这里对收发消息的使用做了一个总结, 如下:
1 | * IM群聊和单聊的消息收发走的是同一套 总共分为两种需求: |
附加
本文为作者原创转载时请注明出处 谢谢