agora_chat_SDK 1.0.6
agora java chat SDK
|
类 | |
interface | AppStateListener |
interface | CheckResultListener |
class | MyConnectionListener |
class | MyMultiDeviceListener |
Public 成员函数 | |
void | init (Context context, ChatOptions options) |
void | createAccount (String username, String password) throws ChatException |
void | login (String id, String password, final CallBack callback) throws IllegalArgumentException |
void | loginWithToken (String username, String token, final CallBack callback) |
void | loginWithAgoraToken (String username, String agoraToken, final CallBack callback) |
void | notifyTokenExpired (String response) |
void | renewToken (String newAgoraToken) |
int | logout (boolean unbindToken) |
void | logout (final boolean unbindToken, final CallBack callback) |
void | changeAppkey (String appkey) throws ChatException |
void | addConnectionListener (final ConnectionListener listener) |
void | removeConnectionListener (final ConnectionListener listener) |
GroupManager | groupManager () |
PushManager | pushManager () |
ChatRoomManager | chatroomManager () |
ChatManager | chatManager () |
UserInfoManager | userInfoManager () |
ContactManager | contactManager () |
TranslationManager | translationManager () |
PresenceManager | presenceManager () |
ChatThreadManager | chatThreadManager () |
Context | getContext () |
synchronized String | getCurrentUser () |
void | getUserTokenFromServer (final String username, final String password, final ValueCallBack< String > callBack) |
boolean | isLoggedInBefore () |
boolean | isConnected () |
boolean | isLoggedIn () |
void | setDebugMode (boolean debugMode) |
boolean | updateCurrentUserNick (String nickname) throws IllegalArgumentException, ChatException |
void | uploadLog (CallBack callback) |
ChatOptions | getOptions () |
String | compressLogs () throws ChatException |
void | addMultiDeviceListener (MultiDeviceListener listener) |
void | removeMultiDeviceListener (MultiDeviceListener listener) |
List< DeviceInfo > | getLoggedInDevicesFromServer (String username, String password) throws ChatException |
void | kickDevice (String username, String password, String resource) throws ChatException |
void | kickAllDevices (String username, String password) throws ChatException |
void | sendFCMTokenToServer (String fcmToken) |
void | sendHMSPushTokenToServer (String appId, String token) |
void | sendHMSPushTokenToServer (String token) |
boolean | isFCMAvailable () |
String | getAccessToken () |
boolean | isSdkInited () |
EMChatConfigPrivate | getChatConfigPrivate () |
JSONObject | getDeviceInfo () |
void | check (String username, String password, final CheckResultListener listener) |
静态 Public 成员函数 | |
static ChatClient | getInstance () |
静态 Public 属性 | |
static final String | TAG = "ChatClient" |
static final String | VERSION = "1.0.6" |
该类是 Chat SDK 的入口,负责登录、退出及连接管理等,由此可以获得其他模块的入口。
void io.agora.chat.ChatClient.addConnectionListener | ( | final ConnectionListener | listener | ) |
设置 Chat 服务器连接监听。
listener | Chat 服务器连接监听。
|
void io.agora.chat.ChatClient.addMultiDeviceListener | ( | MultiDeviceListener | listener | ) |
添加多设备监听的接口。
listener | 见 MultiDeviceListener, MultiDeviceListener#onContactEvent(int, String, String) 联系人事件回调, MultiDeviceListener#onGroupEvent(int, String, List) 群组事件回调。 |
void io.agora.chat.ChatClient.changeAppkey | ( | String | appkey | ) | throws ChatException |
修改 App Key,注意只有在未登录状态才能修改 App Key。修改 App Key 是为了方便你切换其他 App Key,切换后可以使用切换后的 App Key 测试,除了登出外,没有其他的限制。
也可以通过 ChatOptions#setAppKey(String) 设置 App Key,同样只有在未登录状态才能修改。
appkey | App Key,应用的唯一标识,不可为空。 |
ChatManager io.agora.chat.ChatClient.chatManager | ( | ) |
获取聊天管理类,需要在 ChatClient 初始化完成后调用,详见 init(Context, ChatOptions)。
ChatRoomManager io.agora.chat.ChatClient.chatroomManager | ( | ) |
获取聊天室管理类,该方法需要在 ChatClient 初始化完成后调用,详见 init(Context, ChatOptions)。
ChatThreadManager io.agora.chat.ChatClient.chatThreadManager | ( | ) |
获取子区管理类,需要在 ChatClient 初始化完成后调用,详见 init(Context, ChatOptions)。
void io.agora.chat.ChatClient.check | ( | String | username, |
String | password, | ||
final CheckResultListener | listener | ||
) |
服务诊断接口,流程如下:
1.校验用户名和密码; 2.从服务端获取 DNS 列表; 3.从服务端获取 token; 4.连接 chat 服务器; 5.断开连接(如果检查前已经有账户登录,则不执行该步骤)。
如果在诊断过程中产生了错误,该流程将会被打断。
username | 用于服务诊断的用户名,即 user 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 io.agora.chat.ChatClient.compressLogs | ( | ) | throws ChatException |
压缩 log 文件,并返回压缩后的文件路径。强烈建议方法完成之后删除该压缩文件。
ChatException | 压缩文件失败报的错。 |
ContactManager io.agora.chat.ChatClient.contactManager | ( | ) |
获取联系人管理类,需要在 ChatClient 初始化完成后调用,详见 init(Context, ChatOptions)。
void io.agora.chat.ChatClient.createAccount | ( | String | username, |
String | password | ||
) | throws ChatException |
创建账号。
同步方法,会阻塞当前线程。
username | 用户名,长度不超过 64 个字符。请确保你对该参数设值。支持的字符包括英文字母(a-z),数字(0-9),下划线(_),英文横线(-),英文句号(.)。该参数不区分大小写,大写字母会被自动转为小写字母。如果使用正则表达式设置该参数,则可以将表达式写为:^[a-zA-Z0-9_-]+$。 |
password | 密码,长度不超过 64 个字符。请确保你对该参数设值。 |
ChatException | 如果该方法调用失败,会包含调用失败的原因。例如 username(账号),(password)密码为空,或者账号不符合要求。 |
String io.agora.chat.ChatClient.getAccessToken | ( | ) |
从内存中获取身份认证 token。
在上传下载附件(语音,图片,文件等)时必须添加到请求 header 中,当出现任何异常时将返回 null, 可通过判断是否为 null 来检测是否有问题;如果为 null,在打开 EMLog 日志时,可以看到异常原因。
也可以通过 ChatOptions#getAccessToken() 获取,该方法需要从服务端获取 token,可以调用 ChatOptions#getAccessToken(boolean), 并传入 true
。
synchronized String io.agora.chat.ChatClient.getCurrentUser | ( | ) |
获取当前登录用户的用户名。
List< DeviceInfo > io.agora.chat.ChatClient.getLoggedInDevicesFromServer | ( | String | username, |
String | password | ||
) | throws ChatException |
ChatOptions io.agora.chat.ChatClient.getOptions | ( | ) |
获取 ChatOptions。
void io.agora.chat.ChatClient.getUserTokenFromServer | ( | final String | username, |
final String | password, | ||
final ValueCallBack< String > | callBack | ||
) |
根据用户名和密码获取 token。
username | 已经注册过的用户名。 |
password | 密码。 |
callBack | 结果回调。
|
GroupManager io.agora.chat.ChatClient.groupManager | ( | ) |
获取群组管理类,需要在 ChatClient 初始化完成后调用,详见 init(Context, ChatOptions)。
void io.agora.chat.ChatClient.init | ( | Context | context, |
ChatOptions | options | ||
) |
boolean io.agora.chat.ChatClient.isConnected | ( | ) |
检查 SDK 是否连接到 Chat 服务器。
true
表示已经连接到 Chat 服务器。false
表示没有连接到 Chat 服务器。 boolean io.agora.chat.ChatClient.isFCMAvailable | ( | ) |
检查 FCM 推送是否可用。
true
表示 FCM 推送可用;false
表示 FCM 推送不可用。 boolean io.agora.chat.ChatClient.isLoggedIn | ( | ) |
检查用户是否登录。
true
表示已经登录。false
表示没有登录。 boolean io.agora.chat.ChatClient.isLoggedInBefore | ( | ) |
返回是否登录过。
如果登录成功后未调用 logout
方法,这个方法的返回值一直是 true
。
参考: 如果需要判断当前是否连接到服务器,请使用 isConnected() 方法。
true
表示之前登录过。false
表示之前未登录过或者已经调用过 logout() 方法。 boolean io.agora.chat.ChatClient.isSdkInited | ( | ) |
判断 SDK 是否已经初始化完毕。
true
:SDK 已经初始化完毕。false
:SDK 尚未初始化完毕。 void io.agora.chat.ChatClient.kickAllDevices | ( | String | username, |
String | password | ||
) | throws ChatException |
将指定账号下的所有设备都踢下线。
同步方法,会阻塞当前线程。
username | 用户名。 |
password | 密码。 |
ChatException | 如果有异常会抛出,包括错误码和错误描述,错误码详见 Error。 |
void io.agora.chat.ChatClient.kickDevice | ( | String | username, |
String | password, | ||
String | resource | ||
) | throws ChatException |
在指定账号下,根据设备 ID,将指定设备下线, 设备 ID:DeviceInfo#getResource()
同步方法,会阻塞当前线程。
username | 账户名称。 |
password | 该账户密码。 |
resource | 设备 ID, 见 DeviceInfo#getResource()。 |
ChatException | 如果有异常会在此抛出,包括错误码和错误信息,详见 Error。 |
void io.agora.chat.ChatClient.login | ( | String | id, |
String | password, | ||
final CallBack | callback | ||
) | throws IllegalArgumentException |
使用密码登录服务器。
参考: 通过 token 登录服务器的方法见 loginWithToken(String, String, CallBack)。
异步方法。
id | 用户 ID。 不能为空。 |
password | 用户密码。 不能为空。 |
callback | EMCallback 回调函数。 不能为空,登录的结果将通过 callback 返回。 |
IllegalArgumentException | 用户 ID,密码,callback 及 App Key 为空会抛出异常。 |
void io.agora.chat.ChatClient.loginWithAgoraToken | ( | String | username, |
String | agoraToken, | ||
final CallBack | callback | ||
) |
通过用户 ID 和声网 Agora token 登录 chat 服务器。该方法支持自动登录。
参考: 通过用户 ID 和密码登录 chat 服务器,见login(String, String, CallBack)。
异步方法。
username | 用户 ID。 不能为空。 |
agoraToken | 验证 Agora token。 不能为空。 |
callback | EMCallback 回调函数。 不能为空。登录的结果将通过 callback 返回。 |
RuntimeException | App Key 为空会报运行异常。 |
IllegalArgumentException | 用户 ID,token 及 callback 为空,会抛出异常。 |
void io.agora.chat.ChatClient.loginWithToken | ( | String | username, |
String | token, | ||
final CallBack | callback | ||
) |
通过 token 登录服务器。该方法支持自动登录。
参考: 通过密码登录服务器,见 login(String, String, CallBack)。
异步方法。
username | 用户 ID。 不能为空。 |
token | 验证 token。 不能为空。 |
callback | EMCallback 回调函数。 不能为空,登录的结果将通过 callback 返回。 |
RuntimeException | App Key 为空回报运行异常。 |
IllegalArgumentException | 用户 ID,token 及 callback 为空,会抛出异常。 |
int io.agora.chat.ChatClient.logout | ( | boolean | unbindToken | ) |
退出登录并返回退出结果。
同步方法,会阻塞当前线程。
unbindToken | 是否解绑 token。
|
void io.agora.chat.ChatClient.logout | ( | final boolean | unbindToken, |
final CallBack | callback | ||
) |
登出聊天服务器。
异步方法。
unbindToken | 是否解绑 token。
|
callback | 方法完成的回调,包含调用失败的原因。 |
void io.agora.chat.ChatClient.notifyTokenExpired | ( | String | response | ) |
通知 token 过期,会通过 ChatClient 回调给 connectionListener 过期事件。
response | 请求返回的结果。 |
PushManager io.agora.chat.ChatClient.pushManager | ( | ) |
获取推送管理类,需要在 ChatClient 初始化完成后调用,详见 init(Context, ChatOptions)。
void io.agora.chat.ChatClient.removeConnectionListener | ( | final ConnectionListener | listener | ) |
移除 Chat 服务器连接监听。
listener | Chat 服务器连接监听。 |
void io.agora.chat.ChatClient.removeMultiDeviceListener | ( | MultiDeviceListener | listener | ) |
删除多设备监听的接口。
listener | 见 MultiDeviceListener。 |
void io.agora.chat.ChatClient.renewToken | ( | String | newAgoraToken | ) |
当用户在声网 token 登录状态时,且在 ConnectionListener 实现类中收到 token 即将过期事件的回调通知可以调用这个 API 来更新 token,避免因 token 失效产生的未知问题。
newAgoraToken | 声网 token。 |
void io.agora.chat.ChatClient.sendFCMTokenToServer | ( | String | fcmToken | ) |
上传 FCM token 至服务器。
token 可以被上传的前提条件有: 1.被上传的 token 不为空; 2.当前已有用户登录; 3.当前设备支持 Google 推送; 4.Google 推送类型为 FCM io.agora.push.PushType#FCM。
设置推送类型为 FCM 的接口为 ChatOptions#setFCMNumber(String),即设置了 FCM number 则推送类型为 FCM。
fcmToken | 要上传的 token。 |
void io.agora.chat.ChatClient.sendHMSPushTokenToServer | ( | String | appId, |
String | token | ||
) |
void io.agora.chat.ChatClient.sendHMSPushTokenToServer | ( | String | token | ) |
发送华为推送 token 到服务器。
token | 华为推送 token。 |
void io.agora.chat.ChatClient.setDebugMode | ( | boolean | debugMode | ) |
设置是否输出调试信息,在 ChatClient 初始化完成后调用,详见 init(Context, ChatOptions)。
debugMode | - true :SDK 会在 log 里输出调试信息;
|
boolean io.agora.chat.ChatClient.updateCurrentUserNick | ( | String | nickname | ) | throws IllegalArgumentException, ChatException |
更新当前用户的推送昵称,用于推送时在通知栏展示。
需要注意用户属性中的昵称跟这里推送昵称是独立的。
建议从用户服务器获取到用户信息后,将用户属性中的昵称更新到 Chat 服务器; 当个人信息中昵称发生变化的时候,请同步更新到 Chat 服务器,防止出现显示差异。
nickname | 推送昵称。不能为空,长度不超过 100 个字符。 |
void io.agora.chat.ChatClient.uploadLog | ( | CallBack | callback | ) |
上传本地的日志。
同步方法,会阻塞当前线程。
callback | 预留参数。 |
UserInfoManager io.agora.chat.ChatClient.userInfoManager | ( | ) |
获取用户信息管理类,需要在 ChatClient 初始化完成后调用,详见 init(Context, ChatOptions)。