环信IM SDK使用(一):集成环信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了。

参考文档:

Android SDK 介绍及导入

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页