• 用户信息管理
    • 概述
      • 获取用户信息
      • 获取当前登录账号的用户信息
      • 更新用户信息
      • 更新用户密码
      • 更新用户头像
      • 黑名单管理
        • 将用户加入黑名单
        • 将用户移出黑名单
        • 获取被当前用户加入黑名单的用户列表
      • 通知栏管理
        • 设置通知展示类型
        • 获取通知栏展示类型
        • 通知栏点击事件监听
        • 进入单聊会话
        • 进入群聊会话
        • 退出会话
      • 免打扰设置
        • 获取免打扰列表
        • 设置普通免打扰
        • 设置全局免打扰
        • 获取全局免打扰标识

    用户信息管理

    概述

    • 开发者应用的用户,通过username / password 注册到 JMessage后,SDK 侧可以发起注册,服务器端也可发起批量注册。
    • 用户登录 App,也同时登录 JMessage。登录后可以向其他 username 发聊天消息,也可以收到来自其他 username 或者群组的消息。
    • 用户 A 是否有权限向用户 B 发消息,需由开发者的App 自己控制。
    • 开发者可选择将用户头像等用户信息同步更新到 JMessage。

    获取用户信息

    异步从后台获取用户信息,此接口可用来获取不同appkey下用户的信息,如果appKey为空,则默认获取当前appkey下的用户信息。

    1. JMessageClient.getUserInfo(String username, String appKey, GetUserInfoCallback callback);

    参数说明

    • String username 用户名
    • String appKey 指定的appKey
    • GetUserInfoCallback callback 结果回调

    获取当前登录账号的用户信息

    此接口会直接从本地返回当前已经登录的用户的信息。

    1. JMessageClient.getMyInfo();

    参数说明


    • 返回

    • UserInfo 当前登录用户的用户信息。

    更新用户信息

    更新当前已登录用户的用户信息

    1. JMessageClient.updateMyInfo(UserInfo.Field updateField, UserInfo info, BasicCallback callback);

    参数说明

    • UserInfo.Field updateField 枚举类型,表示需要更新的用户信息字段。包括:

      • nickname 昵称
      • birthday 生日
      • signature 签名
      • gender 性别
      • region 地区
      • address 地址
      • all 以上全部
    • UserInfo userInfo 待更新的用户信息(对象)。SDK将根据field参数来判断需要将哪个属性更新到服务器上去。

    • BasicCallback callback 结果回调

    更新用户密码

    更新当前已登录用户的密码

    1. JMessageClient.updateUserPassword(String oldPassword, String newPassword, BasicCallback callback);

    参数说明

    • String oldPassword 更新前密码
    • String newPassword 更新后密码
    • BasicCallback callback 结果回调

    更新用户头像

    更新当前已登录用户的头像

    1. JMessageClient.updateUserAvatar(File avatar, BasicCallback callback);

    参数说明

    • File avatar 用户头像文件
    • BasicCallback callback 结果回调

    黑名单管理

    可以将对方用户加入到“黑名单”列表中,加入之后,我方依然能给对方发消息,但是对方给我发消息时会返回指定错误码,发送消息失败。

    将用户加入黑名单

    1. JMessageClient.addUsersToBlacklist(List<String> usernames, BasicCallback callback)

    参数说明

    • List usernames 被加入黑名单的用户username列表
    • BasicCallback callback 回调接口

    将用户移出黑名单

    1. JMessageClient.delUsersFromBlacklist(List<String> usernames, BasicCallback callback)

    参数说明

    • List usernames 被移出黑名单的用户username列表
    • BasicCallback callback 回调接口

    获取被当前用户加入黑名单的用户列表

    1. JMessageClient.getBlacklist(GetBlacklistCallback callback)

    参数说明

    • GetBlacklistCallback 获取黑名单回调接口
      回调
    1. public abstract void gotResult(int responseCode,
    2. String responseMessage, List<UserInfo> userInfos);
    • List<UserInfo> userInfos 被拉入黑名单的用户的UserInfo

    通知栏管理

    设置通知展示类型

    1. JMessageClient.setNotificationFlag(int flag);

    参数说明

    • int flag 显示通知的模式,包括FLAG_NOTIFY_WITH_SOUND、FLAG_NOTIFY_WITH_VIBRATE、FLAG_NOTIFY_WITH_LED等类型,支持使用 '|' 符号联结各个参数

    获取通知栏展示类型

    Since 2.2.0

    1. JMessageClient.getNotificationFlag();

    返回

    • int 当前设置的通知栏的展示类型。

    通知栏点击事件监听

    用户可以通过接受通知栏点击事件NotificationClickEvent,来实现自定义跳转,该事件如果没有接收者,点击通知栏时SDK将默认跳转到程序主界面。

    事件接收方法见事件处理一节

    进入单聊会话

    UI层在进入聊天会话界面时调用,设置当前正在聊天的对象,调用此接口之后,收到对应用户发来的消息时,sdk不会弹出通知栏提示。同时还会清掉与该聊天对象会话的未读消息数,以及通知栏通知。此接口传入的数据采用覆盖逻辑,后面传入的参数会覆盖掉之前的设置。

    1. JMessageClient.enterSingleConversation(String username,String appKey)

    参数定义

    • String username 单聊聊天对象的username
    • String appKey 聊天对象所属appKey,若appkey为空则默认填充本应用的appkey

    进入群聊会话

    UI层在进入聊天会话界面时调用,设置当前正在聊天的对象,调用此接口之后,收到对应群组中发来的消息时,sdk不会弹出通知栏提示。同时还会清掉与该聊天对象会话的未读消息数,以及通知栏通知。此接口传入的数据采用覆盖逻辑,后面传入的参数会覆盖掉之前的设置。

    1. JMessageClient.enterGroupConversation(long groupID)

    参数定义

    • long groupID 群聊聊天对象的群ID

    退出会话

    退出会话。UI层在退出聊天会话界面时调用,清除当前正在聊天的对象,之后收到对应的用户或群组发来的消息时,会正常展示通知栏通知。

    1. JMessageClient.exitConversation();

    免打扰设置

    可以将用户/群组添加到“免打扰”列表中,收到免打扰用户/群组发过来的消息时,sdk不会弹出默认的通知提示,但消息事件照常下发。

    获取免打扰列表

    1. JMessageClient.getNoDisturblist(GetNoDisurbListCallback callback)

    参数定义

    • GetNoDisurbListCallback callback 回调接口。

    设置普通免打扰

    1. /**
    2. * 将此用户设置为免打扰。
    3. *
    4. * @param noDisturb 1 -- 免打扰,其他 -- 非免打扰
    5. * @param callback 回调接口
    6. */
    7. public abstract void setNoDisturb(int noDisturb, BasicCallback callback);

    具体见api doc中UserInfo和GroupInfo相关接口

    设置全局免打扰

    设置全局免打扰之后,收到所有消息都将不会有通知栏通知,效果类似 JMessageClient.setNotificationFlag(JMessageClient.FLAG_NOTIFY_DISABLE),但是此设置在用户换设备之后也会生效。

    1. JMessageClient.setNoDisturbGlobal(int noDisturbGlobal, BasicCallback callback)

    参数定义

    • int noDisturbGlobal 全局免打扰标志,1表示设置,其他表示取消设置。
    • BasicCallback callback 回调接口

    获取全局免打扰标识

    1. JMessageClient.getNoDisturbGlobal(IntegerCallback callback)

    参数定义

    • IntegerCallback callback 回调接口。