hyphenate_SDK_5.0 5.0.0
hyphenate java IM SDK
 
载入中...
搜索中...
未找到
com.hyphenate.chat.EMClient类 参考

Public 成员函数

synchronized void init (Context context, EMOptions options)
 
void loginWithToken (String username, String token, @NonNull final EMCallBack callback)
 
void notifyTokenExpired (String response)
 
void renewToken (String newToken, @NonNull EMCallBack callback)
 
int logout (boolean unbindToken)
 
void logout (final boolean unbindToken, final EMCallBack callback)
 
void changeAppkey (String appkey) throws HyphenateException
 
void changeAppId (String appId) throws HyphenateException
 
void addConnectionListener (final EMConnectionListener listener)
 
void removeConnectionListener (final EMConnectionListener listener)
 
void addLogListener (final EMLogListener listener)
 
void removeLogListener (final EMLogListener listener)
 
EMGroupManager groupManager ()
 
EMPushManager pushManager ()
 
EMChatRoomManager chatroomManager ()
 
EMChatManager chatManager ()
 
EMUserInfoManager userInfoManager ()
 
EMContactManager contactManager ()
 
EMChatThreadManager chatThreadManager ()
 
synchronized String getCurrentUser ()
 
boolean isConnected ()
 
boolean isLoggedIn ()
 
void setDebugMode (boolean debugMode)
 
void uploadLog (EMCallBack callback)
 
EMOptions getOptions ()
 
String compressLogs () throws HyphenateException
 
void addMultiDeviceListener (EMMultiDeviceListener listener)
 
void removeMultiDeviceListener (EMMultiDeviceListener listener)
 
void fetchLoggedInDevicesFromServerWithToken (@NonNull String username, @NonNull String token, EMValueCallBack< List< EMDeviceInfo > > callBack)
 
void kickDeviceWithToken (@NonNull String username, @NonNull String token, String resource) throws HyphenateException
 
void kickAllDevicesWithToken (@NonNull String username, @NonNull String token) throws HyphenateException
 
void sendFCMTokenToServer (String fcmToken)
 
void sendHMSPushTokenToServer (String token)
 
void sendHonorPushTokenToServer (String token)
 
boolean isFCMAvailable ()
 
String getAccessToken ()
 
boolean isSdkInited ()
 
boolean isDatabaseOpened ()
 
void asyncGetRTCTokenInfoWithChannelName (@Nullable String channelName, EMValueCallBack< EMRTCTokenInfo > callBack)
 
void asyncGetUserIdsWithRTCUids (List< Integer > uIds, EMValueCallBack< Map< Integer, String > > callBack)
 

详细描述

Chat 客户端类。该类是 Chat SDK 的入口,负责登录、登出及管理 SDK 与 chat 服务器之间的连接。

EMChatManager chatManager = EMClient.getInstance().chatManager();
定义 EMChatManager.java:103

成员函数说明

◆ addConnectionListener()

void com.hyphenate.chat.EMClient.addConnectionListener ( final EMConnectionListener listener)

设置连接状态监听器。

该监听器用于监听 Chat app 与 Chat 服务器之间的连接。

参数
listener要添加的连接状态监听器。

◆ addLogListener()

void com.hyphenate.chat.EMClient.addLogListener ( final EMLogListener listener)

设置日志回调监听器。

参数
listener日志回调监听,EMLogListener#onLog(String)

◆ addMultiDeviceListener()

void com.hyphenate.chat.EMClient.addMultiDeviceListener ( EMMultiDeviceListener listener)

添加多设备监听器。

参数
listener要添加的多设备监听器。 详见 EMMultiDeviceListener, EMMultiDeviceListener#onContactEvent(int, String, String) 联系人事件回调, EMMultiDeviceListener#onGroupEvent(int, String, List) 群组事件回调。

◆ asyncGetRTCTokenInfoWithChannelName()

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。 如果该方法调用失败,会包含调用失败的原因。

◆ asyncGetUserIdsWithRTCUids()

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 之间的映射关系。 如果该方法调用失败,会包含调用失败的原因。

◆ changeAppId()

void com.hyphenate.chat.EMClient.changeAppId ( String appId) throws HyphenateException

更新 App ID。

注解
  • App ID 用于控制对你的 app 的 Chat 服务的访问,只有在未登录状态才能修改 App ID。
  • 修改 App ID 是为了方便你切换到其他 App ID。
  • 你可以在 Console 上获取 App ID。
  • 也通过 EMOptions#setAppId(String) 设置 App ID,同样只有在未登录状态才能修改。
参数
appId,应用的唯一标识,不可为空。

◆ changeAppkey()

void com.hyphenate.chat.EMClient.changeAppkey ( String appkey) throws HyphenateException

更新 App Key。

注解
  • App Key 用于控制对你的 app 的 Chat 服务的访问,只有在未登录状态才能修改 App Key。
  • 修改 App Key 是为了方便你切换到其他 App Key。
  • 你可以在 Console 上获取 App Key。
  • 也通过 EMOptions#setAppKey(String) 设置 App Key,同样只有在未登录状态才能修改。
参数
appkeyApp Key,应用的唯一标识,不可为空。

◆ chatManager()

EMChatManager com.hyphenate.chat.EMClient.chatManager ( )

获取聊天管理类。

该方法需要在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)。未初始化调用会返回 null。

返回
聊天管理类。

◆ chatroomManager()

EMChatRoomManager com.hyphenate.chat.EMClient.chatroomManager ( )

获取聊天室管理类。

该方法需要在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)。未初始化调用会返回 null。

返回
聊天室管理类。

◆ chatThreadManager()

EMChatThreadManager com.hyphenate.chat.EMClient.chatThreadManager ( )

获取子区管理类。

需要在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)。未初始化调用会返回 null。

返回
Thread 管理类。

◆ compressLogs()

String com.hyphenate.chat.EMClient.compressLogs ( ) throws HyphenateException

压缩调试日志文件。

强烈建议方法完成之后删除该压缩文件。

返回
压缩后的 log 文件路径。
异常
HyphenateException压缩文件失败报的错。

◆ contactManager()

EMContactManager com.hyphenate.chat.EMClient.contactManager ( )

获取联系人管理类。

需要在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)。未初始化调用会返回 null。

返回
联系人管理类。

◆ fetchLoggedInDevicesFromServerWithToken()

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)

◆ getAccessToken()

String com.hyphenate.chat.EMClient.getAccessToken ( )

从内存中获取身份认证 token。

在上传下载附件(语音,图片,文件等)时必须将 token 添加到请求 header 中,当出现任何异常时将返回 null

如果为 null,在打开 EMLog 日志时,可以看到异常原因。

也可以通过 EMOptions#getAccessToken(boolean) 方法传入 true从服务端获取 token。

返回
身份认证 token。

◆ getCurrentUser()

synchronized String com.hyphenate.chat.EMClient.getCurrentUser ( )

获取当前登录用户的用户名。

返回
当前登录的用户。

◆ getOptions()

EMOptions com.hyphenate.chat.EMClient.getOptions ( )

获取 SDK 的各种配置选项。

◆ groupManager()

EMGroupManager com.hyphenate.chat.EMClient.groupManager ( )

获取群组管理类。

该方法需在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)。未初始化调用会返回 null。

返回
群组管理类。

◆ init()

synchronized void com.hyphenate.chat.EMClient.init ( Context context,
EMOptions options )

初始化 SDK。

请确保在主进程中进行初始化。

参数
context上下文,必填。
options配置项,必填。详见 EMOptions

◆ isConnected()

boolean com.hyphenate.chat.EMClient.isConnected ( )

检查 SDK 是否连接到 Chat 服务器。

返回
是否连接到 Chat 服务器的结果。
  • true 表示已经连接到 Chat 服务器。
  • false 表示没有连接到 Chat 服务器。

◆ isDatabaseOpened()

boolean com.hyphenate.chat.EMClient.isDatabaseOpened ( )

当前是否已有可用的本地数据库上下文。

该状态只表示本地数据库已经成功打开,本地数据库相关接口可以使用;不表示在线登录成功, 也不替代 isLoggedIn() 或连接状态回调。

◆ isFCMAvailable()

boolean com.hyphenate.chat.EMClient.isFCMAvailable ( )

检查 FCM 推送是否可用。

返回
FCM 推送是否可用:
  • true:可用;
  • false:不可用。

◆ isLoggedIn()

boolean com.hyphenate.chat.EMClient.isLoggedIn ( )

检查用户是否登录 Chat 服务。

返回
是否登录 Chat 服务。
  • true:是。
  • false:否。

◆ isSdkInited()

boolean com.hyphenate.chat.EMClient.isSdkInited ( )

检查 SDK 是否已初始化完毕。

返回
SDK 是否已初始化完毕:
  • true:是。
  • false:否。

◆ kickAllDevicesWithToken()

void com.hyphenate.chat.EMClient.kickAllDevicesWithToken ( @NonNull String username,
@NonNull String token ) throws HyphenateException

将指定账号登录的所有设备都踢下线。

同步方法,会阻塞当前线程。

参数
username用户 ID。
token用户 token。
异常
HyphenateException如果有异常会抛出,包括错误码和错误描述,错误码详见 EMError

◆ kickDeviceWithToken()

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

◆ loginWithToken()

void com.hyphenate.chat.EMClient.loginWithToken ( String username,
String token,
@NonNull final EMCallBack callback )

通过 token 登录服务器。

异步方法。

参数
username用户 ID,必填。
token验证 token,必填。
callback登录回调,返回登录结果。必填且不能为 null。登录的结果将通过 callback 返回。

◆ logout() [1/2]

int com.hyphenate.chat.EMClient.logout ( boolean unbindToken)

退出登录。

同步方法,会阻塞当前线程。

参数
unbindToken登出时是否解绑 token。
  • true:是;
  • false:否
返回
登出结果:

◆ logout() [2/2]

void com.hyphenate.chat.EMClient.logout ( final boolean unbindToken,
final EMCallBack callback )

登出聊天服务器。

异步方法。

参数
unbindToken是否解绑 token。
  • true:是;
  • false:否。
callback方法完成的回调,包含调用失败的原因。

◆ notifyTokenExpired()

void com.hyphenate.chat.EMClient.notifyTokenExpired ( String response)

通知 token 过期。(内部使用)

SDK 将token 过期事件回调给 connectionListener。如果用户注册了 connectionListener,则会收到 token 过期事件。

参数
response请求返回的结果。

◆ pushManager()

EMPushManager com.hyphenate.chat.EMClient.pushManager ( )

获取推送管理类。

该方法需在 EMClient 初始化完成后调用。详见 init(Context, EMOptions)。未初始化调用会返回 null。

返回
推送管理类。

◆ removeConnectionListener()

void com.hyphenate.chat.EMClient.removeConnectionListener ( final EMConnectionListener listener)

移除 Chat 服务器连接监听。

参数
listener要移除的 Chat 服务器连接监听。

◆ removeLogListener()

void com.hyphenate.chat.EMClient.removeLogListener ( final EMLogListener listener)

移除日志回调监听。

参数
listener日志回调监听。

◆ removeMultiDeviceListener()

void com.hyphenate.chat.EMClient.removeMultiDeviceListener ( EMMultiDeviceListener listener)

移除多设备监听器。

参数
listener要移除的多设备监听器。见 EMMultiDeviceListener

◆ renewToken()

void com.hyphenate.chat.EMClient.renewToken ( String newToken,
@NonNull EMCallBack callback )

更新 token。

当用户利用 token 登录的情况下在 EMConnectionListener 类中收到 token 即将过期事件的回调通知时,可调用该方法更新 token,避免因 token 失效产生的未知问题。

参数
newToken新token。
callbackEMCallback 回调函数,不能为空,更新token的结果将通过callback返回

◆ sendFCMTokenToServer()

void com.hyphenate.chat.EMClient.sendFCMTokenToServer ( String fcmToken)

上传 FCM token 至 Chat 服务器。

上传 token 需满足以下条件:

  • 被上传的 token 不为空;
  • 当前已有用户登录;
  • 当前设备支持 Google 推送;
  • Google 推送类型为 FCM EMPushType#FCM
参数
fcmToken要上传的 token。

◆ sendHMSPushTokenToServer()

void com.hyphenate.chat.EMClient.sendHMSPushTokenToServer ( String token)

发送华为推送 token 到服务器。

参数
token华为推送 token。

◆ sendHonorPushTokenToServer()

void com.hyphenate.chat.EMClient.sendHonorPushTokenToServer ( String token)

发送荣耀推送 token 到服务器。

参数
token荣耀推送 token。

◆ setDebugMode()

void com.hyphenate.chat.EMClient.setDebugMode ( boolean debugMode)

设置是否输出调试信息。

EMClient 初始化完成后调用,详见 init(Context, EMOptions)

参数
debugMode是否输出调试信息。
  • true:SDK 会在 log 里输出调试信息;
  • false:不会输出调试信息。

◆ uploadLog()

void com.hyphenate.chat.EMClient.uploadLog ( EMCallBack callback)

上传本地日志。

同步方法,会阻塞当前线程。

参数
callback预留参数。

◆ userInfoManager()

EMUserInfoManager com.hyphenate.chat.EMClient.userInfoManager ( )

获取用户信息管理类。

需要在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)。未初始化调用会返回 null。

返回
用户信息管理类。

该类的文档由以下文件生成: