环信im集成

来源:互联网 发布:淘宝卖家自动关闭订单 编辑:程序博客网 时间:2024/05/19 20:23

最近公司准备集成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账号的操作要放在服务器来进行

0 0