android api版本 闪退_Android详解云通信IM

点击上方蓝字关注 ??

af73de160611a6b5188ab56e3398152d.gif

前言

现如今因为项目中用到了腾讯云通信,网上云通信IM的文章很少,所以我打算写一下,希望对大家有所帮助。1.什么是云通信IM

cc87ee5833ab1866aba3e5e5611c051b.png


首先我们要知道云通信IM登录流程,直接看下面图:

c844129a278e845a2dd408faa80d33c1.png

不难看懂,说的简单一点就是我们调后台接口去获取Identifier 与UserSig。我们在测试阶段可以 获取测试 userSig,这点在下面会讲到。

集成与配置

一.配置

1.创建应用2.配置应用-管理员3.获取UserSig

完成账号管理员配置后,单击下载公私钥的链接,即可获得一个名为 keys.zip 的压缩包。解压后可以得到两个文件,即 public_key 和 private_key,用记事本打开 private_key 文件,并将其中的内容拷贝到开发辅助工具的私钥文本输入框中。其中:identifier 即为您的测试账号(也就是 userId),私钥为 private_key 文件里的文本内容,生成的签名就是userSig。identifier 和 userSig 是一一对应的关系。

具体操作可以看下面网址:

https://cloud.tencent.com/document/product/269/32678二.集成SDK

在项目中添加 IM SDK 的依赖

dependencies {api 'com.tencent.imsdk:imsdk:版本号'
}

版本号最好用当前最新的版本,我用的是4.3.118

dependencies {api 'com.tencent.imsdk:imsdk:4.3.118'
}

三.TUIKit集成

TUIKit 是基于腾讯云 IM SDK 的一款 UI 组件库,里面提供了一些通用的 UI 组件,开发者可通过该组件库选取自己所需要的组件快速的搭建一个 IM 应用。 IM 软件都具备一些通用的 UI 界面,如会话列表,聊天界面等。TUIKit 提供了这一类的组件,并提供了灵活的 UI 和交互扩展接口,方便用户做个性化开发。

TUkit我们不一定要集成,只是说如何有需要的可以去集成
集成的方式:

  • 直接依赖它的aar包

  • 把aar源码文件拷贝到咱们项目中

我建议用第二种方式,因为TUkit视图实在是过于简洁,很大程度上我们都需要修改,而且功能上我们也要去修改,用aar包方式的话我们不能去更改文件。

89067b903f58ab033af7b92b23c94422.png

如果有朋友对aar不了解,可以看我之前的文章:
Android-打包AAR步骤以及注意事项

遇到的基本问题

1.权限问题

我们尝试着打开聊天界面(ChatActivity),测试聊天功能, 当我们打开上传图片或者拍照录像时,会发生奔溃!不要慌,其实是权限问题。

Android 6.0加入了动态权限,我们必须冬天获取权限,这个功能需要我们自己去加。

b62afd46450235e0a54485be9f89b6ed.png

2.版本冲突问题同样是在聊天界面,我们点击图片按钮,直接奔溃了

fef638c5495f8de86ff14f9afbd4f6de.png

通过查看报错日志会发现,是Glide版本冲突问题, 也就是tuikit-module中依赖了glide与你本身项目中的Glide版本有冲突造成的

3.控件重名问题

有时候我们集成了云通信IM后,发现我们的某些控件页面闪退了,其实是因为tunikit包下的某些自定义View与我们项目中的冲突了,这个大家要注意。

4.会话列表 聊天的头像都不变

这个不是BUG, 这是需要我们自己去实现的,不要以为所有的功能demo里都有1ce830640739029a7513c99dc85597c4.png

列表

一.会话列表相关

1.会话列表的头像显示问题

首先先看一下会话解析JSON:

我们正常请求会发现, iconUrl字段是空的,此接口是没有返回头像的。
我们在会话列表中用用户ID或者群ID来获取对应的资料, 从资料中拿到你想要的头像:

  • 如果是单聊,就通过peer字段来调用获取用户资料接口

  • 如果是群聊 , 就通过peer字段来调用获取群聊资料接口

2.退出群或者解散群后,再次获取会话列表还会有次群组

此问题很好解决 ,无论是解散群还是退出群组,在成功之后手动删除此群组的会话:

TIMManagerExt.getInstance().deleteConversation(TIMConversationType.C2C, "hello");

二.未决列表相关

何为未决列表????这拿好友未决列表举例:就是我加别人好友(调用了addFriend接口),后台也会记录一条未决信息。
我们要在好友未决列表中做一些验证操作,比如说同意/拒绝请求

好友未决列表一直为空

还以好友未决列表为例,我们一般做这块都是同时做好友验证, 这里要注意一点,云通信默认加好友是直接通过,不需要好友验证的,如果没手动设置,每次获取好友未决列表一定是空的。那么如何设置呢?

d496e4b92878f006fe45add95e83c0f3.png

也就是通过修改自己资料来更改好友验证方式。

剩下的列表就不一一列举了, 常见的

三.其他列表

问题如下:

  • 列表中没有头像 :通过列表每个item中的ID来获取详情信息来拿到头像

  • 列表一直为空 ,可能是没有提前设置某些属性

群组管理

1.邀请成员进群

邀请成员进群报错:
10007 this group does not enable invite
可以先确定一下你的创建群的类型如果是公开群/聊天室时,群主是不能邀请群成员进群的,默认是只有App管理员可以邀请他人入群。

00fb855cd5aea66845b2c1f47a1ad4b4.png

2.群成员

群成员接口基本上是我们必然调取的,但是获取后会发现数据中竟然没有每个成员的头像,这就很尴尬了,和会话列表类似。
解决方法: 拿到每个群成员的ID,然后调获取个人资料的接口,拿到头像。
就先讲到这,希望对大家有帮助...

—————END—————

8c5cb99c7167f1d41f0a4c20c931d2c1.png     

   创作不易,点个“在看921f8b27bd4362a08608542e3ea895bc.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值