欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

环信IM SDK使用(一):集成环信SDK及注意事项

程序员文章站 2022-07-08 12:33:10
环信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。
具体的申请过程,参考环信官方:快速体验环信
环信IM SDK使用(一):集成环信SDK及注意事项
环信IM SDK使用(一):集成环信SDK及注意事项

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文件夹下:
环信IM SDK使用(一):集成环信SDK及注意事项

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了。

参考文档:

Android SDK 介绍及导入

本文地址:https://blog.csdn.net/Heijinbaitu/article/details/108872662