• Android IM SDK 基础功能
    • 概述
      • 字符串规范
      • SDK 初始化
      • SDK初始化(设置消息记录漫游)
      • 注册
      • 登录
      • 退出登录
      • 登陆设备记录
      • 多端同时在线

    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类中调用。默认关闭消息漫游。

    1. JMessageClient.init(Context context)

    参数说明

    • Context context 应用程序上下文对象。

    SDK初始化(设置消息记录漫游)

    Since 2.1.0SDK初始化,同时指定是否启用消息记录漫游。打开消息漫游之后,用户多个设备之间登录时,sdk会自动将当前登录用户的历史消息同步到本地,同步完成之后sdk会发送一个ConversationRefreshEvent事件通知上层刷新,具体事件处理方法见事件处理一节。

    1. JMessageClient.init(Context context, boolean msgRoaming)

    参数说明

    • Context context 应用程序上下文对象。
    • boolean msgRoaming 是否启用消息漫游,true - 启用,false - 关闭。

    注册

    1. JMessageClient.register(String username, String password, BasicCallback callback);
    2. /**
    3. * 注册同时指定用户信息中的其他字段
    4. * @since 2.3.0
    5. */
    6. JMessageClient.register(String userName, String password, RegisterOptionalUserInfo optionalUserInfo, BasicCallback callback);

    参数说明

    • String username 用户名
    • String password 用户密码
    • RegisterOptionalUserInfo optionalUserInfo 注册时的用户其他信息
    • BasicCallback callback 结果回调

    登录

    1. JMessageClient.login(String username, String password, BasicCallback callback);

    参数说明

    • String username 用户名
    • String password 用户密码
    • BasicCallback callback 结果回调

    退出登录

    1. JMessageClient.logout();

    登陆设备记录

    Since 2.5.0登陆时获取设备登陆记录

    1. /**
    2. * 用户登陆,并且在回调中获取用户账号所登陆过的设备信息{@link cn.jpush.im.android.api.model.DeviceInfo}<br/>
    3. * 每个端:移动端(Android 、iOS),PC端,Web端(JS、微信小程序)只保存最近一次设备登陆记录。
    4. *
    5. * @param userName 开发者注册的用户名,应该唯一。
    6. * @param password 用户登录密码,推荐将字符串加密。
    7. * @param callback 回调接口
    8. * @since 2.5.0
    9. */
    10. public static void login(String userName, String password, RequestCallback<List<DeviceInfo>> callback) {
    11. login(userName, password, (BasicCallback) callback);
    12. }

    DeviceInfo

    方法类型说明
    getDeviceID()long获取设备ID
    getPlatformType()PlatformType获取设备所属平台类型
    getOnlineStatus()int获取设备在线状态,0不在线,1在线
    isLogin()boolean判断设备当前是否处于登陆状态, true:登陆,false:登出
    getLastLoginTime()int 获取设备最近一次登陆时间,单位-秒
    getFlag()int 默认为0,1表示该设备被当前登录设备踢出

    多端同时在线

    SDK从2.3.0版本开始支持多端同时在线,具体规则见多端在线说明