环信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()
    mavenCentral()
}

b、module目录下的build.gradle中加入SDK依赖:

dependencies {
    api 'io.hyphenate:hyphenate-chat:3.9.8'
}

(2)手动配置
a、先到环信官网下载环信IM SDK:场景DEMO及源码下载

b、将 SDK 包内 libs 路径下的如下文件,拷贝到项目路径下:

文件或文件夹项目路径
easemob_xxx.jar 文件/app/libs/
arm64-v8a 文件夹/app/src/main/jniLibs/
armeabi-v7a 文件夹/app/src/main/jniLibs/
x86 文件夹/app/src/main/jniLibs/
x86_64 文件夹/app/src/main/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.READ_EXTERNAL_STORAGE"/>
    <!-- 访问 GPS 定位,用于定位消息,如果不用定位相关可以移除 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <!-- 允许程序在手机屏幕关闭后后台进程仍然运行 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <!-- 允许程序开机自动运行,SDK 保活时使用,如果使用厂商推送,可以移除 -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <!-- 申请闹钟定时权限 -->
    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
    <!-- 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.** 

二、使用注意事项

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

三、修订记录

1、2022.11.17:更新SDK版本为3.9.8;更新远程仓库为mavenCentral;更新所需权限。

参考文档:

Android SDK 介绍及导入

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值