Android 及时通信(环信)

您所在的位置:网站首页 环聊怎么添加好友聊天 Android 及时通信(环信)

Android 及时通信(环信)

2024-07-16 12:21| 来源: 网络整理| 查看: 265

Android集成环信即时通信 下载SDK新建工程导入SDK添加权限和配置初始化基础功能注册登录 如果自己来写一个类似微信的音视频聊天软件虽然能实现功能,但是实现过程还是比较麻烦,周期也比较长,可能最后出来漏洞也比较多,直接引入第三方的就省事很多,本文简单描述一下将环信SDK集成在Android应用中。

下载SDK

进入到官网: 在这里插入图片描述 在这里插入图片描述 下载完成后解压出来有如下文件夹: 在这里插入图片描述

doc:SDK 相关 API 文档examples:ChatDemoUI3.0(Demo,依赖 EaseUI 库)、EaseUIlibs.av:包含IM和实时音视频功能所需要的 jar 和 so 文件libs.lite:无实时语音、实时视频功能的 SDK 包,如果项目中只用到聊天功能,可以把项目里的 jar 和 so 文件替换成此文件夹里的文件tools:从 SDK2.x 升级到 3.0的工具

本文只需要用libs.av目录里面这两个东西: 在这里插入图片描述

新建工程

在这里插入图片描述

导入SDK

直接复制到libs目录下: 在这里插入图片描述

sourceSets { main { jniLibs.srcDirs = ['libs'] } }

在这里插入图片描述

添加权限和配置

如下配置写到application节点中:

在这里插入图片描述 上面的AppKey需要到官网去获取: 在这里插入图片描述 在这里插入图片描述 注册账户并登录: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 将这个AppKey复制到代码对应位置后基本配置引入完成了。

初始化

在这里插入图片描述 在这里插入图片描述 ECApplication代码如下:

import android.app.ActivityManager; import android.app.Application; import android.content.pm.PackageManager; import android.util.Log; import com.hyphenate.chat.EMClient; import com.hyphenate.chat.EMOptions; import java.util.Iterator; import java.util.List; public class ECApplication extends Application { @Override public void onCreate() { super.onCreate(); initEasemob(); } private void initEasemob(){ EMOptions options = new EMOptions(); // 默认添加好友时,是不需要验证的,改成需要验证 options.setAcceptInvitationAlways(false); int pid = android.os.Process.myPid(); String processAppName = getAppName(pid); // 如果APP启用了远程的service,此application:onCreate会被调用2次 // 为了防止环信SDK被初始化2次,加此判断会保证SDK被初始化1次 // 默认的APP会在以包名为默认的process name下运行,如果查到的process name不是APP的process name就立即返回 if (processAppName == null ||!processAppName.equalsIgnoreCase(this.getPackageName())) { Log.e("ECApplication", "enter the service process!"); // 则此application::onCreate 是被service 调用的,直接返回 return; } //初始化 EMClient.getInstance().init(this, options); //在做打包混淆时,关闭debug模式,避免消耗不必要的资源 EMClient.getInstance().setDebugMode(true); } private String getAppName(int pID) { String processName = null; ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); List l = am.getRunningAppProcesses(); Iterator i = l.iterator(); PackageManager pm = this.getPackageManager(); while (i.hasNext()) { ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i.next()); try { if (info.pid == pID) { processName = info.processName; return processName; } } catch (Exception e) { // Log.d("Process", "Error>> :"+ e.toString()); } } return processName; } }

编译的时候出现类似如下错误: 在这里插入图片描述 添加如下即可:

compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }

在这里插入图片描述 如果编译运行没错就算集成成功,之后就可以使用API接口了。

基础功能

在官方网站中可以看到基础功能介绍,例如用户注册和登录:

注册

注册模式分两种,开放注册和授权注册。只有开放注册时,才可以客户端注册。 开放注册是为了测试使用,正式环境中不推荐使用该方式注册环信账号; 授权注册的流程应该是您服务器通过环信提供的 REST API 注册,之后保存到您的服务器或返回给客户端。 注册用户名会自动转为小写字母,所以建议用户名均以小写注册。(强烈建议开发者通过后台调用 REST 接口去注册环信 ID,客户端注册方法不提倡使用。)

//注册失败会抛出HyphenateException EMClient.getInstance().createAccount(username, pwd);//同步方法 登录

注意:除了注册监听,其他的 SDK 操作均需在登陆之后才能进行。

EMClient.getInstance().login(userName,password,new EMCallBack() {//回调 @Override public void onSuccess() { Log.d("main", "登录聊天服务器成功!"); } @Override public void onProgress(int progress, String status) { } @Override public void onError(int code, String message) { Log.d("main", "登录聊天服务器失败!"); } });

简单布局一下: 在这里插入图片描述 在登录按钮点击事件中调用登录接口即可: 在这里插入图片描述 demo代码下载地址



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3