最近公司准备集成im模块,于是便调研了环信的sdk,自己注册了开发者账号,并且在demo实现
现在的技术真的是日新月异,发展太快了,记得一年前时候,自己参与的项目要集成im模块,那时候是公司成立了一个im团队,几十个人搞这个,但是做出来的效果却不是很稳定,并且效果也有些不尽人意。不得不说现在sdk太强大了,各种功能的sdk都有。
现在公司的项目决定采用环信的sdk来集成im模块。仔细阅读了环信的官方文档,其实集成环信sdk很简单,并且在环信的sdk文档中也很详细的介绍了使用方法,只要细心阅读一下,就很轻易的能够做到。
集成环信sdk步骤,
第一步,在环信注册开发者账号,具体是以个人名义还是以公司名义可以根据自己的个人情况来决定,如果只是想调研一下或者是写一个demo的话,可以先以个人名义添加项目于,等到需要在项目中集成的时候再以公司的名义来实现
第二步,根据项目的包名,和一些配置,把在环信生成的appkey配置在manifest中。
我的是这样,
<!-- 设置环信应用的appkey -->
<meta-data
android:name="EASEMOB_APPKEY"
android:value="oldthunder#oldthunderchat" />
<!-- 声明sdk所需的service SDK核心功能 -->
<service android:name="com.easemob.chat.EMChatService" />
第三步、把在环信官网下载的jar文件和so文件拷贝到项目中
第四步、在自己项目的application中对环信sdk进行初始化
EMChat.getInstance().init(applicationContext);
/**
* debugMode == true 时为打开,sdk 会在log里输入调试信息
*
* @param debugMode 在做代码混淆的时候需要设置成false
*/
EMChat.getInstance().setDebugMode(true);// 在做打包混淆时,要关闭debug模式,如果未被关闭,则会出现程序无法运行问题
第五步,可以在项目中使用环信的相关api进行操作了
比如发送一条消息,
先创建一个EMConversation,然后创建EMMessage,最后把消息add到conversation中。再调用sendmessage方法就可以了
EMConversation conversation = EMChatManager.getInstance().getConversation(username);
EMMessage message = EMMessage.createSendMessage(EMMessage.Type.TXT);
TextMessageBody body = new TextMessageBody(content);
message.addBody(body);
message.setReceipt(username);
conversation.addMessage(message);
EMChatManager.getInstance().sendMessage(message, new EMCallBack() {
@Override
public void onSuccess() {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, "发送成功", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onProgress(int arg0, String arg1) {}
@Override
public void onError(int arg0, String arg1) {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, "发送失败", Toast.LENGTH_SHORT).show();
}
});
}
});
} catch (Exception e) {
Toast.makeText(this, "发送失败", Toast.LENGTH_SHORT).show();
}
ps:对于账户系统的融合,我们的demo可以在客户端注册一个环信账号,因为想要使用环信的im服务,没有用户的唯一标识是做不到的。对于有服务端的项目来说,注册im账号的操作要放在服务器来进行