好友管理

概述

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. }