Chat 客户端类。该类是 Chat SDK 的入口,负责登录、登出及管理 SDK 与 chat 服务器之间的连接。
| void com.hyphenate.chat.EMClient.addConnectionListener | ( | final EMConnectionListener | listener | ) |
设置连接状态监听器。
该监听器用于监听 Chat app 与 Chat 服务器之间的连接。
| listener | 要添加的连接状态监听器。
|
| void com.hyphenate.chat.EMClient.addLogListener | ( | final EMLogListener | listener | ) |
设置日志回调监听器。
| listener | 日志回调监听,EMLogListener#onLog(String)。 |
| void com.hyphenate.chat.EMClient.addMultiDeviceListener | ( | EMMultiDeviceListener | listener | ) |
添加多设备监听器。
| listener | 要添加的多设备监听器。 详见 EMMultiDeviceListener, EMMultiDeviceListener#onContactEvent(int, String, String) 联系人事件回调, EMMultiDeviceListener#onGroupEvent(int, String, List) 群组事件回调。 |
| void com.hyphenate.chat.EMClient.asyncGetRTCTokenInfoWithChannelName | ( | @Nullable String | channelName, |
| EMValueCallBack< EMRTCTokenInfo > | callBack ) |
根据频道名称 (channelName) 获取 RTC token、token 过期时间以及即时通讯 IM 用户 ID 对应的 RTC UID。
调用该接口前需要先开通 RTC 功能。
如果 channelName 设置为 null,会生成支持所有频道的 RTC token。
异步方法。
| channelName | 声网 RTC 频道名称。 |
| callBack | 该方法完成调用的回调。 如果该方法调用成功,返回 RTC Token、过期时间戳和 RTC UID。 如果该方法调用失败,会包含调用失败的原因。 |
| void com.hyphenate.chat.EMClient.asyncGetUserIdsWithRTCUids | ( | List< Integer > | uIds, |
| EMValueCallBack< Map< Integer, String > > | callBack ) |
获取声网 RTC UID 对应的即时通讯 IM 用户 ID。
异步方法。
| uIds | 声网 Agora RTC UID 集合。 |
| callBack | 该方法完成调用的回调。 如果该方法调用成功,返回 RTC UID 与即时通讯 IM 用户 ID 之间的映射关系。 如果该方法调用失败,会包含调用失败的原因。 |
| void com.hyphenate.chat.EMClient.changeAppId | ( | String | appId | ) | throws HyphenateException |
更新 App ID。
EMOptions#setAppId(String) 设置 App ID,同样只有在未登录状态才能修改。| appId | ,应用的唯一标识,不可为空。 |
| void com.hyphenate.chat.EMClient.changeAppkey | ( | String | appkey | ) | throws HyphenateException |
更新 App Key。
EMOptions#setAppKey(String) 设置 App Key,同样只有在未登录状态才能修改。| appkey | App Key,应用的唯一标识,不可为空。 |
| EMChatManager com.hyphenate.chat.EMClient.chatManager | ( | ) |
| EMChatRoomManager com.hyphenate.chat.EMClient.chatroomManager | ( | ) |
| EMChatThreadManager com.hyphenate.chat.EMClient.chatThreadManager | ( | ) |
| String com.hyphenate.chat.EMClient.compressLogs | ( | ) | throws HyphenateException |
| EMContactManager com.hyphenate.chat.EMClient.contactManager | ( | ) |
| void com.hyphenate.chat.EMClient.fetchLoggedInDevicesFromServerWithToken | ( | @NonNull String | username, |
| @NonNull String | token, | ||
| EMValueCallBack< List< EMDeviceInfo > > | callBack ) |
获取指定账号下登录的在线设备列表。
异步方法,替代原同步方法 getLoggedInDevicesFromServerWithToken。
| username | 用户 ID。 |
| token | 用户 token。 |
| callBack | 结果回调,成功时回调 EMValueCallBack#onSuccess(Object) 返回在线登录设备列表, 失败时回调 EMValueCallBack#onError(int, String)。 |
| String com.hyphenate.chat.EMClient.getAccessToken | ( | ) |
从内存中获取身份认证 token。
在上传下载附件(语音,图片,文件等)时必须将 token 添加到请求 header 中,当出现任何异常时将返回 null。
如果为 null,在打开 EMLog 日志时,可以看到异常原因。
也可以通过 EMOptions#getAccessToken(boolean) 方法传入 true从服务端获取 token。
| synchronized String com.hyphenate.chat.EMClient.getCurrentUser | ( | ) |
获取当前登录用户的用户名。
| EMOptions com.hyphenate.chat.EMClient.getOptions | ( | ) |
获取 SDK 的各种配置选项。
| EMGroupManager com.hyphenate.chat.EMClient.groupManager | ( | ) |
| synchronized void com.hyphenate.chat.EMClient.init | ( | Context | context, |
| EMOptions | options ) |
| boolean com.hyphenate.chat.EMClient.isConnected | ( | ) |
检查 SDK 是否连接到 Chat 服务器。
true 表示已经连接到 Chat 服务器。false 表示没有连接到 Chat 服务器。 | boolean com.hyphenate.chat.EMClient.isDatabaseOpened | ( | ) |
当前是否已有可用的本地数据库上下文。
该状态只表示本地数据库已经成功打开,本地数据库相关接口可以使用;不表示在线登录成功, 也不替代 isLoggedIn() 或连接状态回调。
| boolean com.hyphenate.chat.EMClient.isFCMAvailable | ( | ) |
检查 FCM 推送是否可用。
true:可用;false:不可用。 | boolean com.hyphenate.chat.EMClient.isLoggedIn | ( | ) |
检查用户是否登录 Chat 服务。
true:是。false:否。 | boolean com.hyphenate.chat.EMClient.isSdkInited | ( | ) |
检查 SDK 是否已初始化完毕。
true:是。false:否。 | void com.hyphenate.chat.EMClient.kickAllDevicesWithToken | ( | @NonNull String | username, |
| @NonNull String | token ) throws HyphenateException |
将指定账号登录的所有设备都踢下线。
同步方法,会阻塞当前线程。
| username | 用户 ID。 |
| token | 用户 token。 |
| HyphenateException | 如果有异常会抛出,包括错误码和错误描述,错误码详见 EMError。 |
| void com.hyphenate.chat.EMClient.kickDeviceWithToken | ( | @NonNull String | username, |
| @NonNull String | token, | ||
| String | resource ) throws HyphenateException |
将指定账号从登录的指定设备踢下线。
可通过 EMDeviceInfo#getResource() 方法获取设备 ID。
同步方法,会阻塞当前线程。
| username | 用户 ID。 |
| token | 用户 token。 |
| resource | 设备 ID, 见 EMDeviceInfo#getResource()。 |
| HyphenateException | 如果有异常会在此抛出,包括错误码和错误信息,详见 EMError。 |
| void com.hyphenate.chat.EMClient.loginWithToken | ( | String | username, |
| String | token, | ||
| @NonNull final EMCallBack | callback ) |
通过 token 登录服务器。
异步方法。
| username | 用户 ID,必填。 |
| token | 验证 token,必填。 |
| callback | 登录回调,返回登录结果。必填且不能为 null。登录的结果将通过 callback 返回。 |
| int com.hyphenate.chat.EMClient.logout | ( | boolean | unbindToken | ) |
退出登录。
同步方法,会阻塞当前线程。
| unbindToken | 登出时是否解绑 token。
|
EMError#EM_NO_ERROR,表示退出登录成功;EMError。 | void com.hyphenate.chat.EMClient.logout | ( | final boolean | unbindToken, |
| final EMCallBack | callback ) |
登出聊天服务器。
异步方法。
| unbindToken | 是否解绑 token。
|
| callback | 方法完成的回调,包含调用失败的原因。 |
| void com.hyphenate.chat.EMClient.notifyTokenExpired | ( | String | response | ) |
通知 token 过期。(内部使用)
SDK 将token 过期事件回调给 connectionListener。如果用户注册了 connectionListener,则会收到 token 过期事件。
| response | 请求返回的结果。 |
| EMPushManager com.hyphenate.chat.EMClient.pushManager | ( | ) |
| void com.hyphenate.chat.EMClient.removeConnectionListener | ( | final EMConnectionListener | listener | ) |
移除 Chat 服务器连接监听。
| listener | 要移除的 Chat 服务器连接监听。 |
| void com.hyphenate.chat.EMClient.removeLogListener | ( | final EMLogListener | listener | ) |
移除日志回调监听。
| listener | 日志回调监听。 |
| void com.hyphenate.chat.EMClient.removeMultiDeviceListener | ( | EMMultiDeviceListener | listener | ) |
移除多设备监听器。
| listener | 要移除的多设备监听器。见 EMMultiDeviceListener。 |
| void com.hyphenate.chat.EMClient.renewToken | ( | String | newToken, |
| @NonNull EMCallBack | callback ) |
更新 token。
当用户利用 token 登录的情况下在 EMConnectionListener 类中收到 token 即将过期事件的回调通知时,可调用该方法更新 token,避免因 token 失效产生的未知问题。
| newToken | 新token。 |
| callback | EMCallback 回调函数,不能为空,更新token的结果将通过callback返回 |
| void com.hyphenate.chat.EMClient.sendFCMTokenToServer | ( | String | fcmToken | ) |
上传 FCM token 至 Chat 服务器。
上传 token 需满足以下条件:
EMPushType#FCM。| fcmToken | 要上传的 token。 |
| void com.hyphenate.chat.EMClient.sendHMSPushTokenToServer | ( | String | token | ) |
发送华为推送 token 到服务器。
| token | 华为推送 token。 |
| void com.hyphenate.chat.EMClient.sendHonorPushTokenToServer | ( | String | token | ) |
发送荣耀推送 token 到服务器。
| token | 荣耀推送 token。 |
| void com.hyphenate.chat.EMClient.setDebugMode | ( | boolean | debugMode | ) |
设置是否输出调试信息。
在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)。
| debugMode | 是否输出调试信息。
|
| void com.hyphenate.chat.EMClient.uploadLog | ( | EMCallBack | callback | ) |
上传本地日志。
同步方法,会阻塞当前线程。
| callback | 预留参数。 |
| EMUserInfoManager com.hyphenate.chat.EMClient.userInfoManager | ( | ) |