hyphenate_SDK4.0 4.2.3-lite
hyphenate java IM SDK
Public 成员函数 | 所有成员列表
com.hyphenate.chat.EMClient类 参考

Public 成员函数

void init (Context context, EMOptions options)
 
void createAccount (String username, String password) throws HyphenateException
 
void login (String id, String password, @NonNull final EMCallBack callback)
 
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 addConnectionListener (final EMConnectionListener listener)
 
void removeConnectionListener (final EMConnectionListener listener)
 
void addLogListener (final EMLogListener listener)
 
void removeLogListener (final EMLogListener listener)
 
EMChatRoomManager chatroomManager ()
 
EMChatManager chatManager ()
 
Context getContext ()
 
synchronized String getCurrentUser ()
 
boolean isLoggedInBefore ()
 
boolean isConnected ()
 
boolean isLoggedIn ()
 
void setDebugMode (boolean debugMode)
 
void uploadLog (EMCallBack callback)
 
EMOptions getOptions ()
 
String compressLogs () throws HyphenateException
 
String getAccessToken ()
 
boolean isSdkInited ()
 

详细描述

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

EMChatManager chatManager = EMClient.getInstance().chatManager();

成员函数说明

◆ 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)

◆ chatManager()

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

获取聊天管理类。

该方法需要在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)

返回
聊天管理类。

◆ chatroomManager()

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

获取群组管理类。

该方法需在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)

返回
群组管理类。

获取推送管理类。

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

返回
推送管理类。

获取聊天室管理类。

该方法需要在 EMClient 初始化完成后调用,详见 init(Context, EMOptions)

返回
聊天室管理类。

◆ compressLogs()

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

压缩调试日志文件。

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

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

◆ createAccount()

void com.hyphenate.chat.EMClient.createAccount ( String  username,
String  password 
) throws HyphenateException

创建账号。

该方法不推荐使用,建议调用相应的 RESTful 方法。

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

参数
username用户 ID。 该参数必填。用户 ID 不能超过 64 个字符,支持以下类型的字符:
  • 26 个小写英文字母 a-z;
  • 26 个大写英文字母 A-Z;
  • 10 个数字 0-9;
  • "_", "-", "."
  • 如果使用正则表达式,则可以将表达式写为:^[a-zA-Z0-9_-]+$。

用户 ID 不区分大小写,大写字母会自动转换为小写字母。

用户的电子邮件地址和 UUID 不能作为用户 ID。

可通过以下格式的正则表达式设置用户 ID:^[a-zA-Z0-9_-]+$。

参数
password密码,长度不超过 64 个字符,必填。
异常
HyphenateException如果该方法调用失败,会包含调用失败的原因。例如 username(账号),(password)密码为空,或者账号不符合要求。

◆ getAccessToken()

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

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

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

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

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

返回
身份认证 token。

◆ getContext()

Context com.hyphenate.chat.EMClient.getContext ( )

获取用户信息管理类。

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

返回
用户信息管理类。

获取联系人管理类。

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

返回
联系人管理类。

◆ getCurrentUser()

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

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

返回
当前登录的用户。

◆ getOptions()

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

获取 SDK 的各种配置选项。

◆ init()

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 服务器。

◆ isLoggedIn()

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

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

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

◆ isLoggedInBefore()

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

查询是否登录过。

如果登录成功后未调用 logout 方法,这个方法的返回值一直是 true

如果需要判断当前是否连接到服务器,请使用 isConnected() 方法。

if(EMClient.getInstance().isLoggedInBefore()){
// enter main activity
}else{
// enter login activity
}
返回
返回是否登录过的结果。
  • true 表示登录过。
  • false 表示未登录过或者已经调用过 logout() 方法。

◆ isSdkInited()

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

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

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

◆ login()

void com.hyphenate.chat.EMClient.login ( String  id,
String  password,
@NonNull final EMCallBack  callback 
)

使用密码登录服务器。

通过 token 登录服务器的方法见 loginWithToken(String, String, EMCallBack)

异步方法。

参数
id用户 ID,必填。
password用户密码,必填。
callback登录回调,必填。登录的结果将通过回调返回。

◆ loginWithToken()

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

通过 token 登录服务器。

该方法支持自动登录。

通过密码登录服务器,见 login(String, String, EMCallBack)

异步方法。

参数
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请求返回的结果。

◆ removeConnectionListener()

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

移除 Chat 服务器连接监听。

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

◆ removeLogListener()

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

移除日志回调监听。

参数
listener日志回调监听。

◆ renewToken()

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

更新 token。

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

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

◆ 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预留参数。

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