Android IM SDK 基础功能
概述
JMessage Android IM SDK的基础功能。了解极光 IM 的详细信息,请参考文档:JMessage 产品简介
字符串规范
此处定义JMessage产品里字段属性与规范,用于校验与规范化。
参数 | 字符说明 | 长度限制 |
---|---|---|
app_key | 由 JPush Web Portal 生成的 24位字符串。字母或者数字,不区分大小写 | |
username | 以字母或者数字开头。支持字母、数字、下划线、英文点、减号、 @。 | Byte(4~128) |
password | 不限 | Byte(4~128) |
group_name | 不支持的字符:“\n” “\r” | Byte(0~64) |
nickname | 不支持的字符:“\n” “\r” | Byte(0~64) |
note_name | 不支持的字符:“\n” “\r” | Byte(0~64) |
other | 其他未明确指定的 String 类型字段,都按照这个处理。 支持字符:全部 | Byte(0~250) |
SDK 初始化
在调用IM其他接口前必须先调此接口初始化SDK,推荐在application类中调用。默认关闭消息漫游。
JMessageClient.init(Context context)
参数说明
- Context context 应用程序上下文对象。
SDK初始化(设置消息记录漫游)
Since 2.1.0SDK初始化,同时指定是否启用消息记录漫游。打开消息漫游之后,用户多个设备之间登录时,sdk会自动将当前登录用户的历史消息同步到本地,同步完成之后sdk会发送一个ConversationRefreshEvent
事件通知上层刷新,具体事件处理方法见事件处理一节。
JMessageClient.init(Context context, boolean msgRoaming)
参数说明
- Context context 应用程序上下文对象。
- boolean msgRoaming 是否启用消息漫游,true - 启用,false - 关闭。
注册
JMessageClient.register(String username, String password, BasicCallback callback);
/**
* 注册同时指定用户信息中的其他字段
* @since 2.3.0
*/
JMessageClient.register(String userName, String password, RegisterOptionalUserInfo optionalUserInfo, BasicCallback callback);
参数说明
- String username 用户名
- String password 用户密码
- RegisterOptionalUserInfo optionalUserInfo 注册时的用户其他信息
- BasicCallback callback 结果回调
登录
JMessageClient.login(String username, String password, BasicCallback callback);
参数说明
- String username 用户名
- String password 用户密码
- BasicCallback callback 结果回调
退出登录
JMessageClient.logout();
登陆设备记录
Since 2.5.0登陆时获取设备登陆记录
/**
* 用户登陆,并且在回调中获取用户账号所登陆过的设备信息{@link cn.jpush.im.android.api.model.DeviceInfo}<br/>
* 每个端:移动端(Android 、iOS),PC端,Web端(JS、微信小程序)只保存最近一次设备登陆记录。
*
* @param userName 开发者注册的用户名,应该唯一。
* @param password 用户登录密码,推荐将字符串加密。
* @param callback 回调接口
* @since 2.5.0
*/
public static void login(String userName, String password, RequestCallback<List<DeviceInfo>> callback) {
login(userName, password, (BasicCallback) callback);
}
DeviceInfo
方法 | 类型 | 说明 |
---|---|---|
getDeviceID() | long | 获取设备ID |
getPlatformType() | PlatformType | 获取设备所属平台类型 |
getOnlineStatus() | int | 获取设备在线状态,0不在线,1在线 |
isLogin() | boolean | 判断设备当前是否处于登陆状态, true:登陆,false:登出 |
getLastLoginTime() | int | 获取设备最近一次登陆时间,单位-秒 |
getFlag() | int | 默认为0,1表示该设备被当前登录设备踢出 |
多端同时在线
SDK从2.3.0版本开始支持多端同时在线,具体规则见多端在线说明