用户信息管理

概述

  • 开发者应用的用户,通过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 枚举类型,表示需要更新的用户信息字段。包括:

    1. - nickname 昵称
    2. - birthday 生日
    3. - signature 签名
    4. - gender 性别
    5. - region 地区
    6. - address 地址
    7. - 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);

参数说明

获取通知栏展示类型

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中UserInfoGroupInfo相关接口

设置全局免打扰

设置全局免打扰之后,收到所有消息都将不会有通知栏通知,效果类似
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 回调接口。