hyphenate_SDK4.0 4.10.0
hyphenate java IM SDK
|
Public 成员函数 | |
synchronized 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 | loginWithAgoraToken (String username, String agoraToken, @NonNull final EMCallBack callback) |
void | notifyTokenExpired (String response) |
void | renewToken (String newAgoraToken) |
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 | 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 () |
void | getUserTokenFromServer (final String username, final String password, final EMValueCallBack< String > callBack) |
boolean | isLoggedInBefore () |
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) |
List< EMDeviceInfo > | getLoggedInDevicesFromServer (String username, String password) throws HyphenateException |
List< EMDeviceInfo > | getLoggedInDevicesFromServerWithToken (@NonNull String username, @NonNull String token) throws HyphenateException |
void | kickDevice (String username, String password, String resource) throws HyphenateException |
void | kickDeviceWithToken (@NonNull String username, @NonNull String token, String resource) throws HyphenateException |
void | kickAllDevices (String username, String password) 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 () |
void | check (String username, String password, final CheckResultListener listener) |
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.changeAppkey | ( | String | appkey | ) | throws HyphenateException |
更新 App Key。
appkey | App Key,应用的唯一标识,不可为空。 |
EMChatManager com.hyphenate.chat.EMClient.chatManager | ( | ) |
EMChatRoomManager com.hyphenate.chat.EMClient.chatroomManager | ( | ) |
EMChatThreadManager com.hyphenate.chat.EMClient.chatThreadManager | ( | ) |
void com.hyphenate.chat.EMClient.check | ( | String | username, |
String | password, | ||
final CheckResultListener | listener | ||
) |
诊断 Chat 服务。
服务诊断流程如下:
1.校验用户 ID 和密码; 2.从服务端获取 DNS 列表; 3.从服务端获取 token; 4.连接 chat 服务器; 5.断开连接(如果检查前已经有账户登录,则不执行该步骤)。
如果在诊断过程中产生了错误,该流程将会被打断。
username | 用于服务诊断的用户 ID,如果已有账户登录,该用户 ID 会被替换为已登录账户的用户 ID,以防止更改当前已登录账户 的信息,比如 token 等。 |
password | 密码,如果已有账户登录,该密码会被替换为已登录账户的密码。 |
listener | 诊断结果的回调。 |
Contains account-validation check, get-dns check, get-Token check, login check. So the EMAChatClient.CheckResultListener#onResult(int, int, String) callback will be called four times.
String com.hyphenate.chat.EMClient.compressLogs | ( | ) | throws HyphenateException |
压缩调试日志文件。
强烈建议方法完成之后删除该压缩文件。
HyphenateException | 压缩文件失败报的错。 |
EMContactManager com.hyphenate.chat.EMClient.contactManager | ( | ) |
void com.hyphenate.chat.EMClient.createAccount | ( | String | username, |
String | password | ||
) | throws HyphenateException |
创建账号。
该方法不推荐使用,建议调用相应的 RESTful 方法。
同步方法,会阻塞当前线程。
username | 用户 ID。 该参数必填。用户 ID 不能超过 64 个字符,支持以下类型的字符:
|
用户 ID 不区分大小写,大写字母会自动转换为小写字母。
用户的电子邮件地址和 UUID 不能作为用户 ID。
可通过以下格式的正则表达式设置用户 ID:^[a-zA-Z0-9_-]+$。
password | 密码,长度不超过 64 个字符,必填。 |
HyphenateException | 如果该方法调用失败,会包含调用失败的原因。例如 username(账号),(password)密码为空,或者账号不符合要求。 |
String com.hyphenate.chat.EMClient.getAccessToken | ( | ) |
从内存中获取身份认证 token。
在上传下载附件(语音,图片,文件等)时必须将 token 添加到请求 header 中,当出现任何异常时将返回 null
。
如果为 null
,在打开 EMLog 日志时,可以看到异常原因。
也可以通过 EMOptions#getAccessToken(boolean) 方法传入 true
从服务端获取 token。
synchronized String com.hyphenate.chat.EMClient.getCurrentUser | ( | ) |
获取当前登录用户的用户名。
List< EMDeviceInfo > com.hyphenate.chat.EMClient.getLoggedInDevicesFromServer | ( | String | username, |
String | password | ||
) | throws HyphenateException |
获取指定账号下登录的在线设备列表。
同步方法,会阻塞当前线程。
username | 用户 ID。 |
password | 密码。 |
HyphenateException | 具体错误详见 EMError。 |
List< EMDeviceInfo > com.hyphenate.chat.EMClient.getLoggedInDevicesFromServerWithToken | ( | @NonNull String | username, |
@NonNull String | token | ||
) | throws HyphenateException |
获取指定账号下登录的在线设备列表。
同步方法,会阻塞当前线程。
username | 用户 ID。 |
token | 用户 token。 |
HyphenateException | 具体错误详见 EMError。 |
EMOptions com.hyphenate.chat.EMClient.getOptions | ( | ) |
获取 SDK 的各种配置选项。
void com.hyphenate.chat.EMClient.getUserTokenFromServer | ( | final String | username, |
final String | password, | ||
final EMValueCallBack< String > | callBack | ||
) |
根据用户 ID 和密码获取 token。
username | 用户 ID。 |
password | 密码。 |
callBack | 结果回调。
|
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.isFCMAvailable | ( | ) |
检查 FCM 推送是否可用。
true
:可用;false
:不可用。 boolean com.hyphenate.chat.EMClient.isLoggedIn | ( | ) |
检查用户是否登录 Chat 服务。
true
:是。false
:否。 boolean com.hyphenate.chat.EMClient.isLoggedInBefore | ( | ) |
查询是否登录过。
如果登录成功后未调用 logout
方法,这个方法的返回值一直是 true
。
如果需要判断当前是否连接到服务器,请使用 isConnected() 方法。
true
表示登录过。false
表示未登录过或者已经调用过 logout() 方法。 boolean com.hyphenate.chat.EMClient.isSdkInited | ( | ) |
检查 SDK 是否已初始化完毕。
true
:是。false
:否。 void com.hyphenate.chat.EMClient.kickAllDevices | ( | String | username, |
String | password | ||
) | throws HyphenateException |
将指定账号登录的所有设备都踢下线。
同步方法,会阻塞当前线程。
username | 用户 ID。 |
password | 密码。 |
HyphenateException | 如果有异常会抛出,包括错误码和错误描述,错误码详见 EMError。 |
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.kickDevice | ( | String | username, |
String | password, | ||
String | resource | ||
) | throws HyphenateException |
将指定账号从登录的指定设备踢下线。
可通过 EMDeviceInfo#getResource() 方法获取设备 ID。
同步方法,会阻塞当前线程。
username | 用户 ID。 |
password | 用户的密码。 |
resource | 设备 ID, 见 EMDeviceInfo#getResource()。 |
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.login | ( | String | id, |
String | password, | ||
@NonNull final EMCallBack | callback | ||
) |
使用密码登录服务器。
异步方法。
id | 用户 ID,必填。 |
password | 用户密码,必填。 |
callback | 登录回调,必填。登录的结果将通过回调返回。 |
void com.hyphenate.chat.EMClient.loginWithAgoraToken | ( | String | username, |
String | agoraToken, | ||
@NonNull final EMCallBack | callback | ||
) |
通过用户 ID 和声网 Agora token 登录 chat 服务器。
该方法支持自动登录。
通过用户 ID 和密码登录 chat 服务器,见login(String, String, EMCallBack)。
异步方法。
username | 用户 ID。不能为空。 |
agoraToken | 验证 Agora token。不能为空。 |
callback | EMCallback 回调函数。不能为空。登录的结果将通过 callback 返回。 |
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 返回。 |
int com.hyphenate.chat.EMClient.logout | ( | boolean | unbindToken | ) |
退出登录。
同步方法,会阻塞当前线程。
unbindToken | 登出时是否解绑 token。
|
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 | newAgoraToken | ) |
更新 Agora token。
当用户利用声网 token 登录的情况下在 EMConnectionListener 类中收到 token 即将过期事件的回调通知时,可调用该方法更新 token,避免因 token 失效产生的未知问题。
newAgoraToken | 声网 token。 |
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 需满足以下条件:
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 | ( | ) |