Android环信IM简单集成(EaseUI)

环信,用来做即时通信的,使用环信自己的EaseUI集成的话,还是比较简单的。
1、在环信官网注册一个账号,然后进入环信管理后台!这里写图片描述

创建项目,拿到我们需要的AppKey

2、我们需要去下载SDK,下载完成后,将examples下的easeui包导入AS这里写图片描述

将libs下的.so文件放入AS的libs下
这里写图片描述
这里写图片描述

3、在build.gradle中添加libs的路径
android {
  ......
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}
4、在AndroidManifest.XML的application标签下配置
  <!-- 设置环信应用的AppKey -->
        <meta-data
            android:name="EASEMOB_APPKEY"
            android:value="1128170719178779#hailiao"/>
        <!-- 声明SDK所需的service SDK核心功能 -->
        <service
            android:name="com.hyphenate.chat.EMChatService"
            android:exported="true"/>
        <service
            android:name="com.hyphenate.chat.EMJobService"
            android:exported="true"
            android:permission="android.permission.BIND_JOB_SERVICE"/>
        <!-- 声明SDK所需的receiver -->
        <receiver android:name="com.hyphenate.chat.EMMonitorReceiver">
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REMOVED"/>

                <data android:scheme="package"/>
            </intent-filter>
            <!-- 可选filter -->
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <action android:name="android.intent.action.USER_PRESENT"/>
            </intent-filter>
        </receiver>

然后将权限添加一下

<uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

现在工程的配置已经完成,剩下的就是代码中的事情了。

5、在application里进行初始化
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        init();
    }

    private void init() {

        EMOptions options = new EMOptions();
// 默认添加好友时,是不需要验证的,改成需要验证
        options.setAcceptInvitationAlways(false);

//初始化
        EaseUI.getInstance().init(getApplicationContext(), options);
        EMClient.getInstance().init(getApplicationContext(), options);
//在做打包混淆时,关闭debug模式,避免消耗不必要的资源
        EMClient.getInstance().setDebugMode(true);
    }
6、我们要在合适的位置进行一个环信注册(看自己的需求)
 new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
 //这里的参数是两个String                   EMClient.getInstance().createAccount("test2"/*userId+""*/, yxpassword);
                    } catch (HyphenateException e) {
                        e.printStackTrace();
                    }
                }
            }).start();

环信的注册需要在子线程中进行。

7、然后要做一个环信的登录,写在哪里也是看自己的需求
 EMClient.getInstance().login(/*userId*/"test2", password, new EMCallBack() {
            @Override
            public void onSuccess() {
               Logger.d("登录成功");
            }

            @Override
            public void onError(int i, String s) {
                Logger.d("login_onError----->" +i +","+ s);
                // Toast.makeText(LoginActivity.this, s, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onProgress(int i, String s) {

            }
        });
8、我们需要创建一个Activity,xml里只需要做一个FrameLayout就可以了,用来承载easeui的聊天布局,在跳转到这个Activity时,我们要将两个参数传过去,一个是聊天的类型,单聊,群聊,一个是要和谁聊天,将目标的环信id传过去
 Intent intent = new Intent(getActivity(),MessageActivity.class);
                intent.putExtra(EaseConstant.EXTRA_CHAT_TYPE, EMMessage.ChatType.Chat);
                intent.putExtra(EaseConstant.EXTRA_USER_ID,/*friendList.getData().get(position).getUserId()*/"test1");
                startActivity(intent);
9、最后一步需要在上面的Activity中调用easeui中的方法
 EaseChatFragment chatFragment = new EaseChatFragment();
        //传入参数
        chatFragment.setArguments(getIntent().getExtras());
        getSupportFragmentManager().beginTransaction().add(R.id.frame_message_activity, chatFragment).commit();

通过以上几步即可简单实现环信的集成,此文章只是自娱自乐,不喜勿喷。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值