官網
創建一個工程
如果想要封裝性好一點,也可以在工程裏再創建一個環信的Library,然後將SDK裏的jar
和.so
,都導入到工程
清單文件
下面是環信Library庫裏面的清單文件,包含了權限的設置、APPKEY的設置和服務的聲明等。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="……">
<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.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" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<!-- 設置環信應用的AppKey -->
<meta-data
android:name="EASEMOB_APPKEY"
android:value="你的APPKEY" />
<!-- 聲明SDK所需的service SDK核心功能-->
<service
android:name="com.hyphenate.chat.EMChatService"
android:exported="true" />
<!-- 聲明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>
</application>
</manifest>
初始化
創建一個InitApplication
類,繼承Application
,用來初始化應用的一些信息。
在主工程的清單文件下聲明
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="……">
<application
android:name=".InitApplication"
……>
……
</application>
</manifest>
初始化
package ……;
import android.app.Application;
import android.widget.Toast;
import com.hyphenate.chat.EMClient;
import com.hyphenate.chat.EMOptions;
/**
* Created by kqw on 2016/8/22.
* 初始化應用
*/
public class InitApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
EMOptions options = new EMOptions();
// 默認添加好友時,是不需要驗證的,改成需要驗證
options.setAcceptInvitationAlways(false);
// 初始化
EMClient.getInstance().init(this, options);
// 在做打包混淆時,關閉debug模式,避免消耗不必要的資源
EMClient.getInstance().setDebugMode(true);
Toast.makeText(this, "已經初始化", Toast.LENGTH_SHORT).show();
}
}
部署完成