环信IM--创建默认会话+默认欢迎语
第一步:接入环信UI–ease-im-kit
登录环信后台,找到开发者集成文档,按照提示集成,具体步骤就不再说了。我集成是选择把源码下载下来了(便于代码编辑和查看具体实现方法)。首先简单说下我在集成过程中遇到的问题吧。如果不想看的可以直接扒拉到最下边看标题相关内容。
集成版本3.7.3
接入环信IM即时聊天功能,环信的demo是必须要借鉴的。demo里功能点是相当全的。这点还是挺值得夸奖的。稍有缺陷是有些注释方法已经过时😄,由于公司项目是引用的android库,环信的demo和IM库都是androidx的了,这点需要注意下。如果公司项目已经很成熟了,就需要仔细考虑下是否要升级到androidx。最好在集成前就处理好,不然会有很多问题要处理。我就采坑了。刚开始想着把环信相关的方法转换成android的,改到一般着实进行不下去了,迫不得已还原代码。把项目整体迁移到androidx😭。本来迁移androidx是下一步的计划,为了继承环信被迫提前了。好在最后全部处理完,当能发起聊天时给激动的啊😄。
环信demo中遇到的问题
首先是最近要求越来越严格的权限问题了。一次性获取所有权限很明显不符合最新工信部的要求。所以要在特定的功能带你做权限判断,下边是项目中用到的图片消息和文件消息的权限获取。在重写的onChatExtendMenuItemClick
方法中判断相应的控件id做相关判断就行。
@Override
public void onChatExtendMenuItemClick(View view, int itemId) {
if(itemId == com.hyphenate.easeui.R.id.extend_item_take_picture) {
if (!cameraPermissions()) {
return;
}
} else if(itemId == com.hyphenate.easeui.R.id.extend_item_picture) {
if (!albumPermissions()) {
return;
}
} else if(itemId == com.hyphenate.easeui.R.id.extend_item_file) {
if (!albumPermissions()) {
return;
}
}
super.onChatExtendMenuItemClick(view, itemId);
}
如果用到语音消息的就要动态获取录音权限了,这个通过上边的方法就不再适合了。扒拉环信的代码就可以看到EaseChatInputMenu
中的
@Override
public boolean onPressToSpeakBtnTouch(View v, MotionEvent event) {