环信IM SDK使用(一):集成环信SDK及注意事项
程序员文章站
2022-04-02 21:16:46
环信IM SDK可以帮助用户快速开发IM相关的应用。如何快速集成环信IM SDK呢?首先附上环信官网的集成SDK的文档:Android SDK 介绍及导入一、集成环信IM SDK1、申请环信Appkey要使用环信IM SDK第一步就是要去环信官网申请环信的Appkey。具体的申请过程,参考环信官方:快速体验环信。2、添加SDK依赖(1)添加远程依赖a、项目根目录下build.gradle配置:repositories { google() jcenter()}b、...
环信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
解决办法为:
参考:*。
也可以直接在AndroidManifest.xml文件的application标签中设置android:usesCleartextTraffic=“true” 。
<application
android:usesCleartextTraffic="true" >
......
</application>
经过以上4步配置及下面的两步注意事项后,就可以愉快的使用环信IM SDK了。
参考文档:
本文地址:https://blog.csdn.net/Heijinbaitu/article/details/108872662