• 好友管理
    • 概述
      • 发送好友添加请求
      • 接受好友请求
      • 拒绝好友请求
      • 获取好友列表
      • 删除好友
      • 更新用户备注名/备注信息
      • 好友相关通知事件

    好友管理

    概述

    jmessage android sdk 从1.4.0版本开始提供接口实现对用户好友关系的托管,以及相关好友请求的发送和接收。

    好友模块仅实现对用户好友关系的托管,以及相关好友请求的发送和接收。除此之外的任何建立在好友关系之上的功能(如仅限于好友之间才能进行的聊天等),需要开发者的应用层自己实现。jmessage本身是无好友通信模式。

    发送好友添加请求

    发送添加好友请求。在对方未做回应的前提下,允许重复发送添加好友的请求。请求发送后对方会收到一条好友请求的ContactNotifyEvent事件。

    1. public static void sendInvitationRequest(final String targetUsername,String appKey, final String reason, final BasicCallback callback)

    参数定义

    • String targetUsername 被邀请方用户名
    • String appKey 被邀请方用户的appKey,如果为空则默认从本应用appKey下查找用户。
    • String reason 申请理由
    • BasicCallback callback 结果回调
      代码示例:
    1. ContactManager.sendInvitationRequest("test_user", "test_appkey", "hello", new BasicCallback() {
    2. @Override
    3. public void gotResult(int responseCode, String responseMessage) {
    4. if (0 == responseCode) {
    5. //好友请求请求发送成功
    6. } else {
    7. //好友请求发送失败
    8. }
    9. }
    10. });

    接受好友请求

    接受对方的好友请求,操作成功后,对方会出现在自己的好友列表中,双方建立起好友关系。请求发送后对方会收到一条好友请求被接受的ContactNotifyEvent事件。

    1. ContactManager.acceptInvitation(final String targetUsername, String appKey, final BasicCallback callback)

    参数定义

    • String targetUsername 邀请方的用户名
    • String appKey 邀请方用户的appKey,如果为空则默认从本应用appKey下查找用户。
    • BasicCallback callback 结果回调
      代码示例:
    1. ContactManager.acceptInvitation("test_user", "test_appkey", new BasicCallback() {
    2. @Override
    3. public void gotResult(int responseCode, String responseMessage) {
    4. if (0 == responseCode) {
    5. //接收好友请求成功
    6. } else {
    7. //接收好友请求失败
    8. }
    9. }
    10. });

    拒绝好友请求

    拒绝对方的好友请求。请求发送后对方会收到一条好友请求被拒绝的ContactNotifyEvent事件。

    1. ContactManager.declineInvitation(final String targetUsername, String appKey, String reason, final BasicCallback callback)

    参数定义

    • String targetUsername 邀请方用户名
    • String appKey 邀请方用户的appKey,如果为空则默认从本应用appKey下查找用户。
    • String reason 拒绝理由
    • BasicCallback callback 结果回调
      代码示例:
    1. ContactManager.declineInvitation("test_user", "test_appkey", "sorry~", new BasicCallback() {
    2. @Override
    3. public void gotResult(int responseCode, String responseMessage) {
    4. if (0 == responseCode) {
    5. //拒绝好友请求成功
    6. } else {
    7. //拒绝好友请求失败
    8. }
    9. }
    10. });

    获取好友列表

    获取当前登录用户的好友列表,异步返回结果。

    1. ContactManager.getFriendList(final GetUserInfoListCallback callback)

    参数定义

    • GetUserInfoListCallback callback 结果回调。
      代码示例:
    1. ContactManager.getFriendList(new GetUserInfoListCallback() {
    2. @Override
    3. public void gotResult(int responseCode, String responseMessage, List<UserInfo> userInfoList) {
    4. if (0 == responseCode) {
    5. //获取好友列表成功
    6. } else {
    7. //获取好友列表失败
    8. }
    9. }
    10. });

    删除好友

    将用户从你的好友列表中移除,移除成功后,对方会收到一条好友被移除的ContactNotifyEvent事件。

    1. userinfo.removeFromFriendList(BasicCallback callback)

    参数定义

    • BasicCallback callback 结果回调
      代码示例:
    1. userinfo.removeFromFriendList(new BasicCallback() {
    2. @Override
    3. public void gotResult(int responseCode, String responseMessage) {
    4. if (0 == responseCode) {
    5. //移出好友列表成功
    6. } else {
    7. //移出好友列表失败
    8. }
    9. }
    10. });

    更新用户备注名/备注信息

    为好友添加备注名和备注信息。仅当用户存在于你的好友列表中时,才能更新其备注名和备注信息。

    1. userinfo.updateNoteName(String noteName, BasicCallback callback)
    2. userinfo.updateNoteText(String noteText, BasicCallback callback)

    参数定义:

    • String noteName 新的备注名
    • String noteText 新的备注信息
    • BasicCallback callback 结果回调
      代码示例:
    1. userinfo.updateNoteName("new_note_name", new BasicCallback() {
    2. @Override
    3. public void gotResult(int responseCode, String responseMessage) {
    4. if (0 == responseCode) {
    5. //更新备注名成功
    6. } else {
    7. //更新备注名失败
    8. }
    9. }
    10. });

    好友相关通知事件

    新增联系人相关通知事件ContactNotifyEvent,具体事件处理方法见:事件处理一节

    方法类型说明
    getType()ContactNotifyEvent.Type获取联系人通知事件的具体类型,具体类型见Type定义
    getReason()String获取事件发生的理由,该字段由对方发起请求时所填,对方如果未填则将返回默认字符串
    getFromUsername()String获取事件发送者的username
    getFromUserAppKey()String获取事件发送者用户所属应用的appKey

    示例代码:

    1. class ContactNotifyEventReceiver extends Activity{
    2. @Override
    3. protected void onCreate() {
    4. super.onCreate(savedInstanceState);
    5. JMessageClient.registerEventReceiver(this);
    6. }
    7. @Override
    8. protected void onDestroy() {
    9. JMessageClient.unRegisterEventReceiver(this);
    10. super.onDestroy();
    11. }
    12. public void onEvent(ContactNotifyEvent event) {
    13. String reason = event.getReason();
    14. String fromUsername = event.getFromUsername();
    15. String appkey = event.getfromUserAppKey();
    16. switch (event.getType()) {
    17. case invite_received://收到好友邀请
    18. //...
    19. break;
    20. case invite_accepted://对方接收了你的好友邀请
    21. //...
    22. break;
    23. case invite_declined://对方拒绝了你的好友邀请
    24. //...
    25. break;
    26. case contact_deleted://对方将你从好友中删除
    27. //...
    28. break;
    29. default:
    30. break;
    31. }
    32. }
    33. }