上云无忧 > 文档中心 > 环信IM即时通讯使用教程(Android) - SDK 集成概述
IM即时通讯
环信IM即时通讯使用教程(Android) - SDK 集成概述

文档简介:
介绍 Android 集成相关内容。 前提条件: 开始前,请注册有效的环信即时通讯 IM 开发者账号并取得 App key,见 环信即时通讯云管理后台 (opens new window)。 集成环境: 详见 开发环境要求。
*此产品及展示信息均由环信官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

介绍 Android 集成相关内容。

前提条件

开始前,请注册有效的环信即时通讯 IM 开发者账号并取得 App key,见 环信即时通讯云管理后台 (opens new window)

集成环境

详见 开发环境要求。

添加权限

  1. 找到文件 AndroidManifest.xml
  2. SDK 最少需要添加的权限如下:


 <uses-permission android:name="android.permission.INTERNET" /> 
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE”/>
"android.permission.WAKE_LOCK" /> 


SDK 初始化

初始化是使用 SDK 的必要步骤,需在执行所有接口方法调用前完成。

如果进行多次初始化操作,只有第一次初始化以及相关的参数生效。

初始化示例代码:


EMOptions options = new EMOptions(); options.setAppKey("Your appkey"); ......
// 其他 EMOptions 配置。 EMClient.getInstance().init(context, options); 


注意

需要在主进程中进行初始化。

注册用户

可以使用如下代码创建账号:

// 注册失败会抛出 HyphenateException。 EMClient.getInstance().createAccount(mAccount, mPassword);// 同步方法。 

注意

  • 以上注册模式为在客户端注册,旨在方便测试,并不推荐在正式环境中使用;
  • 正式环境应使用服务器端调用 REST API 接口注册用户 (opens new window)

用户登录

目前登录服务器支持手动和自动登录。手动登录有两种方式:

  • 用户 ID + 密码
  • 用户 ID + token

注意

使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。

手动登录

用户 ID + 密码 登录是传统的登录方式。用户名和密码均由你的终端用户自行决定,密码需要符合密码规则要求。


EMClient.getInstance().login(mAccount, mPassword, new EMCallBack() { 
// 登录成功回调 @Override public void onSuccess() { } // 登录失败回调,包含错误信息 
@Override public void onError(int code, String error) { } }); 


用户 ID + token 是更加安全的登录方式。token 可以通过调用 REST API 获取。详见 环信用户 token 的获取。


EMClient.getInstance().loginWithToken(mAccount, mPassword, new EMCallBack() { // 登录成功回调 
@Override public void onSuccess() { } // 登录失败回调,包含错误信息 @Override public void onError(int code, String error) { } }); 


自动登录

初始化时可以设置是否自动登录。如果设置为自动登录,则登录成功之后,后续启动初始化的时候会自动登录。

退出登录

同步方法:

EMClient.getInstance().logout(true); 

异步方法:


EMClient.getInstance().logout(true, new EMCallBack() { @Override public void onSuccess() 
{ } @Override public void onError(int code, String message) { } }); 


连接状态相关

你可以通过注册连接监听确认连接状态。


EMConnectionListener connectionListener = new EMConnectionListener() { @Override public void onConnected()
 { } @Override public void onDisconnected(int errorCode) { } @Override public void onLogout(int errorCode) { }
 @Override public void onTokenWillExpire() { } @Override public void onTokenExpired() { } };
 // 注册连接状态监听 EMClient.getInstance().addConnectionListener(connectionListener); 
// 移除连接状态监听 EMClient.getInstance().removeConnectionListener(connectionListener); 


断网自动重连

如果由于网络信号弱、切换网络等引起的连接终端,SDK 会自动尝试重连。重连成功或者失败的结果分别会收到通知 onConnected 和 onDisconnected。

被动退出登录

你可以通过监听回调 EMConnectionListener#onLogout(int) 后,调用 EMClient#logout(boolean, EMCallBack) 进行退出并返回登录界面。

EMConnectionListener#onLogout(int) 返回的 errorCode 有如下:

  • USER_LOGIN_ANOTHER_DEVICE=206: 用户已经在其他设备登录
  • USER_REMOVED=207: 用户账户已经被移除
  • USER_BIND_ANOTHER_DEVICE=213: 用户已经绑定其他设备
  • USER_LOGIN_TOO_MANY_DEVICES=214: 用户登录设备超出数量限制
  • USER_KICKED_BY_CHANGE_PASSWORD=216: 由于密码变更被踢下线
  • USER_KICKED_BY_OTHER_DEVICE=217: 由于其他设备登录被踢下线
  • USER_DEVICE_CHANGED=220: 和上次设备不同导致下线
  • SERVER_SERVING_DISABLED=305: 服务器服务停止

以上参数具体可以参考 EMError (opens new window)对应说明。

输出信息到日志文件

开发者可以在开发阶段开启 DEBUG 模式,获取更多的调试信息。

// 需要在 SDK 初始化后调用 EMClient.getInstance().setDebugMode(true); 

获取本地日志

adb pull /sdcard/android/data/{应用包名}/{App Key}/core_log/easemob.log

获取本地日志,需要将 {应用包名} 替换为应用的包名,例如 com.hyphenate.chatuidemo;{App Key} 需要替换为应用设置的环信 App Key。



相似文档
  • 静态配置 IP(域名)地址: SDK 默认指向公有云地址,在部署私有云后,需要将地址重新指向到新的地址,以下是地址修改方法: 注意: 如果需要配置 HTTPS 只需在 REST 地址前加一个前缀。
  • 版本 V4.0.1 Dev 2023-3-16(开发版): 新增特性: [IM SDK] 新增 群成员自定义属性功能并增加自定义属性更新事件实现群成员设置和获取在群组中的昵称和头像等属性。 [IM SDK] 新增 EMMessage#deliverOnlineOnly 和 EMMessage#isDeliverOnlineOnly 方法实现发消息只投递给在线用户。若开启了该功能,用户离线时消息不投递。
  • 功能描述: 环信即时通讯 IM 支持多种消息类型,开发者可以方便地对本地会话、消息进行管理,可以从服务端获取历史会话和消息,提供送达回执和已读回执能力。
  • 登录即时通讯服务后,用户可以在单聊、群聊、聊天室中发送如下类型的消息: 文字消息,包含超链接和表情消息。 附件消息,包含图片、语音、视频及文件消息。 位置消息。 透传消息。 自定义消息。
  • 本文介绍环信即时通讯 IM SDK 如何管理本地消息数据。SDK 内部使用 SQLite 保存本地消息,方便消息处理。 除了发送和接收消息外,环信即时通讯 IM SDK 还支持以会话为单位对本地的消息数据进行管理,如获取与管理未读消息、搜索和删除历史消息以及统计消息流量等。其中,会话是一个单聊、群聊或者聊天室所有消息的集合。用户需在会话中发送消息、查看或清空历史消息等操作。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部