整合環信IM SDK及使用注意事項
環信IM SDK可以幫助使用者快速開發IM相關的應用。如何快速整合環信IM SDK呢?
首先附上環信官網的整合SDK的文件:Android SDK 介紹及匯入
一、整合環信IM SDK
1、申請環信Appkey
要使用環信IM SDK第一步就是要去環信官網申請環信的Appkey。
具體的申請過程,參考環信官方:快速體驗環信。
2、新增SDK依賴
(1)新增遠端依賴
a、專案根目錄下build.gradle配置:
repositories {
google()
jcenter()
}
b、module目錄下的build.gradle中加入SDK依賴:
dependencies {
api 'com.hyphenate:hyphenate-sdk:3.7.1'
}
注:如果不需要實時語音及實時視訊功能,使用api 'com.hyphenate:hyphenate-sdk-lite:3.7.1’即可。
(2)手動配置
a、先到環信官網下載環信IM SDK:場景DEMO及原始碼下載
下載的壓縮包中,有libs.av和libs.lite兩個資料夾,如果不需要實時語音、實時視訊功能,就直接用libs.lite資料夾下的 jar 包及 so 檔案,否則就用libs.av資料夾下的相關jar包及so檔案。
b、將jar包放到libs資料夾下,so檔案放到jniLibs資料夾下:
3、配置AndroidManifest.xml
(1)配置許可權
<!-- IM SDK required start -->
<!-- 允許程式振動 -->
<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"/>
<!-- 這個許可權用於訪問GPS定位(用於定位訊息,如果不用定位相關可以移除) -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- api 21後被標記為deprecated -->
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- 用於訪問wifi網路資訊-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!-- 用於獲取wifi的獲取許可權 -->
<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" />
<!-- 捕獲螢幕所需許可權,Q後新增許可權(多人音視訊螢幕分享使用) -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<!-- IM SDK required end -->
(2)配置環信Appkey
<!-- 設定環信應用的AppKey -->
<meta-data android:name="EASEMOB_APPKEY" android:value="Your AppKey" />
此處的環信Appkey就是第一步申請得到的。
(3)其他配置
<!-- 宣告SDK所需的service SDK核心功能-->
<service
android:name="com.hyphenate.chat.EMChatService"
android:exported="true"/>
<service android:name="com.hyphenate.chat.EMJobService"
android:permission="android.permission.BIND_JOB_SERVICE"
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>
4、配置混淆規則
-keep class com.hyphenate.** {*;}
-dontwarn com.hyphenate.**
//3.6.8版本之後移除apache,無需再新增
-keep class internal.org.apache.http.entity.** {*;}
//如果使用了實時音視訊功能
-keep class com.superrtc.** {*;}
-dontwarn com.superrtc.**
二、使用注意事項
1、需要指定jdk版本
android {
......
//指定jdk版本
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
如果不配置的話,同步SDK後會報錯。
2、解決Android9.0以上強制使用https的問題
報錯表現:
UnknownServiceException: CLEARTEXT communication to localhost not permitted by network security policy
或者
IOException java.io.IOException: Cleartext HTTP traffic to * not permitted
解決辦法為:
參考:StackOverFlow。
也可以直接在AndroidManifest.xml檔案的application標籤中設定android:usesCleartextTraffic=“true” 。
<application
android:usesCleartextTraffic="true" >
......
</application>
經過以上4步配置及下面的兩步注意事項後,就可以愉快的使用環信IM SDK了。
參考文件:
相關文章
- 使用Swift快速整合環信IM iOS SDK並實現單聊SwiftiOS
- Guava HashMultimap使用及注意事項Guava
- 搭建 nuget 私服及注意事項
- 新手使用ABP框架及注意事項--純後端框架後端
- 微信域名防封注意事項
- Oracle使用*的注意事項Oracle
- 使用Google Fonts注意事項Go
- 介面開發文件及注意事項
- Python eval的用法及注意事項Python
- 微信小程式開發注意事項微信小程式
- Go語言中 defer 使用場景及注意事項,你是要注意的!Go
- 機械硬碟,使用注意事項硬碟
- 萬兆網路卡使用注意事項
- MySQL半同步使用注意事項MySql
- TCP使用注意事項總結TCP
- C中memcpy使用注意事項memcpy
- 如何搭建伺服器及注意事項伺服器
- 段合併優化及注意事項優化
- SVN安裝配置及安全注意事項
- 4.Rxjs介紹及注意事項JS
- golang 中 channel 的詳細使用、使用注意事項及死鎖分析Golang
- 信創伺服器遷移注意事項伺服器
- MCU看門狗使用注意事項
- 說點JSON使用的注意事項JSON
- Select 選擇器使用注意事項
- 使用MyBatis的注意事項有哪些MyBatis
- 使用Vue.js的注意事項Vue.js
- 使用HTTP的三個注意事項HTTP
- 伺服器使用安全注意事項伺服器
- Oracle臨時表使用注意事項Oracle
- 不同版本exp/imp使用注意事項
- 深入瞭解typeof與instanceof的使用場景及注意事項
- 無線WiFi設定和使用遇到問題及注意事項WiFi
- @Lombok注意事項Lombok
- RandomAccessFile注意事項randomMac
- 開發及上線中的注意事項
- ERP選型準備、方法及注意事項
- iOS開發中整合FFmpeg以及相關注意事項iOS