Android 集成环信EaseUI

来源:互联网 发布:php小说源码手机版 编辑:程序博客网 时间:2024/06/04 21:46

集成环信EaseUI的过程中会遇到各种各样的坑,在此,把这些坑总结出来,纪念一下,那些一步一跌倒的过程
1.Android Studio 中导入EaseUI
打开你的 AS 项目→File→New→Import Module→选择或输入 EaseUI 库路径→Next→Next→Finish。

导入完可能会有如下错误:
这里写图片描述
最直接的方法就是将EaseUI的build.gradle文件配置改为与主项目一致。
把 v4 包的版本号加大,譬如 compile ‘com.android.support:support-v4:23.1.1’。

2.如果项目使用EaseUI,则不需要再将环信的jar包等导入到主项目中。另外EaseUI中使用到一些第三方,例如Glide、百度地图等。如果主项目中也使用了这些第三方,则需要删除掉主项目中的引用,否则会出现重复导入的冲突问题
这里写图片描述
如果出现这一类问题,不需要慌张,只需要认真检查,项目中哪些引用与EaseUI重复即可

3.解决冲突问题后,则需要对环信进行初始化
官方给出的初始化如下:

EMOptions options = new EMOptions();// 默认添加好友时,是不需要验证的,改成需要验证options.setAcceptInvitationAlways(false);...//初始化EMClient.getInstance().init(applicationContext, options);//在做打包混淆时,关闭debug模式,避免消耗不必要的资源EMClient.getInstance().setDebugMode(true);

记得在混淆打包时,将debug模式关闭

4.如果你顺利的解决冲突问题,完成初始化,那么恭喜,接下来可以慢慢实现聊天功能了。
环信提供了聊天的fragment。我们可以直接启动聊天会话 fragment
new 出 EaseChatFragment 或者其子类,调用 setArguments 方法传入 chatType(会话类型)和 userId(用户或群id),通过 getSupportFragmentManager() 启动 fragment。

//new出EaseChatFragment或其子类的实例 EaseChatFragment chatFragment = new EaseChatFragment(); //传入参数 Bundle args = new Bundle(); //设置群聊或者单聊 args.putInt(EaseConstant.EXTRA_CHAT_TYPE, EaseConstant.CHATTYPE_GROUP); //传递用户ID args.putString(EaseConstant.EXTRA_USER_ID, "zw123"); chatFragment.setArguments(args); getSupportFragmentManager().beginTransaction().add(R.id.container, chatFragment).commit();

启动fragment后就可以实现简单的聊天功能了

5.EaseUI中并不提供音视频聊天功能,如果需要实现音视频聊天功能,需要自己手动添加
可以参照这篇博客:http://blog.csdn.net/zhangxxxq/article/details/78200577

6.EaseUI自带的头像不是圆形,而UI给的效果图是圆形图片,EaseUI中使用的图片框架为Glide,如果你的项目使用的也是Glide,那就很好实现了

这里写图片描述

找到EaseUI中的EaseUserUtils,在setUserAvatar方法中有使用Glide加载图片的方法,利用Glide实现圆角图片,可以参照下面博客:
http://blog.csdn.net/zhangxxxq/article/details/77542953

同时,只修改这些是不够的,需要将layout中的默认头像删掉
这里写图片描述

7.打包混淆,官方给出的混淆:

#------->环信-keep class com.hyphenate.** {*;}-keep class com.superrtc.** {*;}-dontwarn  com.hyphenate.**

其他一些第三方的混淆代码,可以参考:
http://blog.csdn.net/zhangxxxq/article/details/78200156

原创粉丝点击