环信,用来做即时通信的,使用环信自己的EaseUI集成的话,还是比较简单的。
1、在环信官网注册一个账号,然后进入环信管理后台!![这里写图片描述](https://img-blog.csdn.net/20170726170542848?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM2MzU3MzYz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
创建项目,拿到我们需要的AppKey
2、我们需要去下载SDK,下载完成后,将examples下的easeui包导入AS![这里写图片描述](https://img-blog.csdn.net/20170726171806656?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM2MzU3MzYz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
将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();
通过以上几步即可简单实现环信的集成,此文章只是自娱自乐,不喜勿喷。