hyphenate_SDK3.0
3.8.6.1
hyphenate java IM SDK
|
类 | |
interface | AppStateListener |
interface | CheckResultListener |
class | MyConnectionListener |
class | MyMultiDeviceListener |
Public 成员函数 | |
void | init (Context context, EMOptions options) |
void | createAccount (String username, String password) throws HyphenateException |
void | login (String id, String password, final EMCallBack callback) throws IllegalArgumentException |
void | loginWithToken (String username, String token, final 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) |
EMGroupManager | groupManager () |
EMPushManager | pushManager () |
EMChatRoomManager | chatroomManager () |
EMChatManager | chatManager () |
EMUserInfoManager | userInfoManager () |
EMContactManager | contactManager () |
Context | getContext () |
synchronized String | getCurrentUser () |
void | getUserTokenFromServer (final String username, final String password, final EMValueCallBack< String > callBack) |
boolean | isLoggedInBefore () |
boolean | isConnected () |
void | setDebugMode (boolean debugMode) |
boolean | updateCurrentUserNick (String nickname) throws IllegalArgumentException, HyphenateException |
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 |
void | kickDevice (String username, String password, String resource) throws HyphenateException |
void | kickAllDevices (String username, String password) throws HyphenateException |
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 EMClient | getInstance () |
静态 Public 属性 | |
static final String | TAG = "EMClient" |
static final String | VERSION = "3.8.6.1" |
Chat SDK的入口,负责登录退出及连接管理等,由此可以获得其他模块的入口
EMChatManager chatManager = EMClient.getInstance().chatManager();
<p<blockquote>
void com.hyphenate.chat.EMClient.addConnectionListener | ( | final EMConnectionListener | listener | ) |
设置chat服务器连接监听
listener | chat服务器连接监听 EMConnectionListener#onConnected()表示与chat服务器连接成功 EMConnectionListener#onDisconnected(int)表示与chat服务器断开连接, 参数表示错误码,详见EMError |
void com.hyphenate.chat.EMClient.addMultiDeviceListener | ( | EMMultiDeviceListener | listener | ) |
添加多设备监听的接口
void com.hyphenate.chat.EMClient.changeAppkey | ( | String | appkey | ) | throws HyphenateException |
更改appkey 只有在未登录状态才能修改appkey 也可以通过EMOptions#setAppKey(String)设置appkey,同样只有在未登录状态才能修改
appkey | 不可为空 |
EMChatManager com.hyphenate.chat.EMClient.chatManager | ( | ) |
获取聊天管理类,需要在EMClient初始化完成后调用,详见init(Context, EMOptions)
EMChatRoomManager com.hyphenate.chat.EMClient.chatroomManager | ( | ) |
获取聊天室管理类,需要在EMClient初始化完成后调用,详见init(Context, EMOptions)
void com.hyphenate.chat.EMClient.check | ( | String | username, |
String | password, | ||
final CheckResultListener | listener | ||
) |
服务诊断接口,流程如下:
1.校验用户名和密码 2.从服务端获取DNS列表 3.从服务端获取Token 4.连接chat服务器 5.断开连接(如果检查前已经有账户登录,则不执行该步骤)
如果在诊断过程中产生了错误,该流程将会被打断.
username | 用于服务诊断的用户名,如果已有账户登录,该用户名会被替换为已登录账户的用户名,以防止更改当前已登录账户 的信息,比如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 |
压缩log文件,并返回压缩后的文件路径
HyphenateException | 压缩文件失败报的错 |
EMContactManager com.hyphenate.chat.EMClient.contactManager | ( | ) |
获取联系人管理类,需要在EMClient初始化完成后调用,详见init(Context, EMOptions)
void com.hyphenate.chat.EMClient.createAccount | ( | String | username, |
String | password | ||
) | throws HyphenateException |
创建账号
同步方法,会阻塞当前线程
username | 账号,不可为空,可以是字母/数字/下划线/横线/英文句号,正则为"^[a-zA-Z0-9_.-]+$", 其他的都不允许。如果是大写字母会自动转成小写。长度不可超过64个字符长度。 |
password | 密码,不可为空。长度不可超过64个字符长度。 |
HyphenateException | { |
username}账号,{ |
String com.hyphenate.chat.EMClient.getAccessToken | ( | ) |
从内存中获取身份认证token 在上传下载附件(语音,图片,文件等)时必须添加到请求header中,当出现任何异常时将返回null, 可通过判断是否为null来检测是否有问题;如果为null,在打开EMLog日志时,是可以看到异常原因
也可以通过EMOptions#getAccessToken()获取,要从服务端获取token,可以调用EMOptions#getAccessToken(boolean), 并传入true
synchronized String com.hyphenate.chat.EMClient.getCurrentUser | ( | ) |
获取当前登录用户的用户名
List<EMDeviceInfo> com.hyphenate.chat.EMClient.getLoggedInDevicesFromServer | ( | String | username, |
String | password | ||
) | throws HyphenateException |
EMOptions com.hyphenate.chat.EMClient.getOptions | ( | ) |
获取EMOptions
void com.hyphenate.chat.EMClient.getUserTokenFromServer | ( | final String | username, |
final String | password, | ||
final EMValueCallBack< String > | callBack | ||
) |
根据用户名和密码获取token
username | 已经注册过的用户名 |
password | 密码 |
callBack | 结果回调 EMValueCallBack#onSuccess(Object)表示请求成功的回调,onSuccess中的参数即为返回的token EMValueCallBack#onError(int, String)表示请求失败的回调,第一个参数是错误码, 第二个参数是错误描述 |
EMGroupManager com.hyphenate.chat.EMClient.groupManager | ( | ) |
获取群组管理类,需要在EMClient初始化完成后调用,详见init(Context, EMOptions)
void com.hyphenate.chat.EMClient.init | ( | Context | context, |
EMOptions | options | ||
) |
初始化SDK。 需要在主进程中进行初始化。
context | 上下文,不可为空 |
options | 配置项,不可为空,见EMOptions |
boolean com.hyphenate.chat.EMClient.isConnected | ( | ) |
检查是否连接到chat服务器
boolean com.hyphenate.chat.EMClient.isFCMAvailable | ( | ) |
检查FCM 推送是否可用
boolean com.hyphenate.chat.EMClient.isLoggedInBefore | ( | ) |
返回是否登录过 登录成功过没调logout方法,这个方法的返回值一直是true 如果需要判断当前是否连接到服务器,请使用isConnected()方法
if(EMClient.getInstance().isLoggedInBefore()){ // enter main activity }else{ // enter login activity }
boolean com.hyphenate.chat.EMClient.isSdkInited | ( | ) |
判断SDK是否已经初始化完毕
void com.hyphenate.chat.EMClient.kickAllDevices | ( | String | username, |
String | password | ||
) | throws HyphenateException |
void com.hyphenate.chat.EMClient.kickDevice | ( | String | username, |
String | password, | ||
String | resource | ||
) | throws HyphenateException |
在指定账号下,根据设备ID,将指定设备下线, 设备ID:EMDeviceInfo#getResource()
同步方法,会阻塞当前线程
username | 账户名称 |
password | 该账户密码 |
resource | 设备ID, 见EMDeviceInfo#getResource() |
HyphenateException | 错误码详见EMError |
void com.hyphenate.chat.EMClient.login | ( | String | id, |
String | password, | ||
final EMCallBack | callback | ||
) | throws IllegalArgumentException |
通过用户ID和密码登录chat服务器 通过用户ID和token登录chat 服务器见loginWithToken(String, String, EMCallBack)
异步方法
id | 用户id 不能为空 |
password | 用户密码 不能为空 |
callback | EMCallback回调函数 不能为空,登录的结果将通过callback返回。 |
IllegalArgumentException | 用户id,密码,callback及appkey为空会抛出异常。 |
void com.hyphenate.chat.EMClient.loginWithToken | ( | String | username, |
String | token, | ||
final EMCallBack | callback | ||
) |
通过用户id和token登录chat 服务器 另通过用户id和密码登录chat 服务器,见login(String, String, EMCallBack)
异步方法
username | 用户id 不能为空 |
token | 验证token 不能为空 |
callback | EMCallback回调函数 不能为空,登录的结果将通过callback返回 |
RuntimeException | appkey为空回报运行异常 |
IllegalArgumentException | 用户id,token及callbak为空,会抛出异常 |
int com.hyphenate.chat.EMClient.logout | ( | boolean | unbindToken | ) |
退出登录并返回退出结果
同步方法,会阻塞当前线程
unbindToken | 是否解绑token true表示需要退出时解绑设备token false表示退出时不解绑设备token |
void com.hyphenate.chat.EMClient.logout | ( | final boolean | unbindToken, |
final EMCallBack | callback | ||
) |
登出聊天服务器
异步方法
unbindToken | 是否解绑token true表示需要退出时解绑设备token false表示退出时不解绑设备token |
callback | EMCallback回调 EMCallBack#onSuccess()表示退出登录成功的回调 EMCallBack#onError(int, String)表示退出登录失败的回调, 第一个参数代表错误码,见EMError,第二个参数代表错误描述 |
EMPushManager com.hyphenate.chat.EMClient.pushManager | ( | ) |
获取推送管理类,需要在EMClient初始化完成后调用,详见init(Context, EMOptions)
void com.hyphenate.chat.EMClient.removeConnectionListener | ( | final EMConnectionListener | listener | ) |
移除chat服务器连接监听
listener | Chat服务器连接监听 |
void com.hyphenate.chat.EMClient.removeMultiDeviceListener | ( | EMMultiDeviceListener | listener | ) |
删除多设备监听的接口
listener | 见EMMultiDeviceListener |
void com.hyphenate.chat.EMClient.sendFCMTokenToServer | ( | String | fcmToken | ) |
上传FCM token至服务器
token可以被上传的前提条件有: 1.被上传的token不为空 2.当前已有用户登录 3.当前设备支持google推送 4.google推送类型为FCM com.hyphenate.push.EMPushType#FCM 设置推送类型为FCM的接口为EMOptions#setFCMNumber(String),即设置了FCM number则推送类型为FCM
fcmToken | 要上传的token |
void com.hyphenate.chat.EMClient.sendHMSPushTokenToServer | ( | String | appId, |
String | token | ||
) |
void com.hyphenate.chat.EMClient.sendHMSPushTokenToServer | ( | String | token | ) |
发送华为推送 token 到服务器
token | 华为推送token |
void com.hyphenate.chat.EMClient.setDebugMode | ( | boolean | debugMode | ) |
设置是否输出调试信息,在EMClient初始化完成后调用,详见init(Context, EMOptions)
debugMode | 传入true,SDK会在log里输出调试信息;传入false则不会输出调试信息 |
boolean com.hyphenate.chat.EMClient.updateCurrentUserNick | ( | String | nickname | ) | throws IllegalArgumentException, HyphenateException |
更新当前用户的推送昵称,用于推送时在通知栏展示 现推荐使用EMPushManager#updatePushNickname(String)代替 需要与用户属性中的昵称区分开 建议从用户服务器获取到用户信息后,将用户属性中的昵称更新到chat服务器; 当个人信息中昵称发生变化的时候,也要同步更新到chat服务器,防止出现显示差异
nickname | 昵称 不能为空,长度不超过100个字符 |
void com.hyphenate.chat.EMClient.uploadLog | ( | EMCallBack | callback | ) |
上传本地的日志
同步方法,会阻塞当前线程
callback | 回调方法 此处没有用到此回调方法 |
EMUserInfoManager com.hyphenate.chat.EMClient.userInfoManager | ( | ) |
获取用户信息管理类,需要在EMClient初始化完成后调用,详见init(Context, EMOptions)