Android QuickBlox - 用户必须有一个联系人列表

Posted

技术标签:

【中文标题】Android QuickBlox - 用户必须有一个联系人列表【英文标题】:Android QuickBlox - User must have a list of contacts 【发布时间】:2014-03-16 07:47:40 【问题描述】:

我是quickblox 的新手,我查看了一些官方教程,并且已经能够创建并连接到我的应用程序。

现在我遇到的问题是,在我的 quickblox 帐户中,我只能选择制作“房间”,类似于 irc 我认为?但这不是我的想法。

我需要每个用户都有自己的联系人列表,类似于 Facebook 聊天/Whatsapp/电报等。

所以我真的不知道该怎么做,因为在我读过的所有示例中,它们都连接到一个房间。

我应该如何实现这个?

谢谢

【问题讨论】:

嗨。您可以查看github.com/QuickBlox/quickblox-android-sdk/blob/master/snippets/… 和其他sn-ps 模块。要创建联系人列表,您应该使用 Roster。您可以通过花名册聊天添加联系人。只需登录聊天,获取名册并通过名册发送订阅用户的请求。 【参考方案1】:

例如,您可以使用 CustomObjects 模块来做到这一点。

让我们从 Android CustomObjects 示例开始http://quickblox.com/developers/SimpleSample-customObjects-android

1) 使用一个字段创建名为 FriendsList 的类 - friendsIDs(int 数组) - 本指南展示了如何创建类 http://quickblox.com/developers/SimpleSample-customObjects-android#Add_Custom_Data_structure_to_your_application

2) 当 UserA 将 UserB 添加到好友时 - 将 UserB id 放入 friendsIDs 字段。

QBCustomObject co = new QBCustomObject();
co.setClassName("FriendsList");
HashMap<String, Object> fields = new HashMap<String, Object>();
fields.put("push[friendsIDs][]", "788"); // 788 id UserB id
co.setFields(fields);
co.setCustomObjectId("502f7c4036c9ae2163000002");

QBCustomObjects.updateObject(co, new QBCallbackImpl() 
    @Override
    public void onComplete(Result result) 
        if (result.isSuccess()) 
            QBCustomObjectResult updateResult = (QBCustomObjectResult) result;
            QBCustomObject qbCustomObject = updateResult.getCustomObject();
            Log.d("Updated friends list: ",qbCustomObject.toString());
         else 
            Log.e("Errors",result.getErrors().toString());
        
    
);

3) 请求好友列表:

QBCustomObjectRequestBuilder requestBuilder = new QBCustomObjectRequestBuilder();
requestBuilder.eq("user_id", "222"); // 222 is your user id

QBCustomObjects.getObjects("Movie", requestBuilder, new QBCallbackImpl() 
    @Override
    public void onComplete(Result result) 
        if (result.isSuccess()) 
             QBCustomObjectLimitedResult coresult = (QBCustomObjectLimitedResult) result;
             ArrayList<QBCustomObject> co = coresult.getCustomObjects();
             Log.d("friends list: ", co.toString());
          else 
             Log.e("Errors",result.getErrors().toString());
         
     
);

【讨论】:

以上是关于Android QuickBlox - 用户必须有一个联系人列表的主要内容,如果未能解决你的问题,请参考以下文章

Android:如何使用 quickblox 维护用户在线/离线状态?

Quickblox:使用自定义对象登录 (Android)

Android 上的 Quickblox 视频通话

Quickblox - 如何将通知推送到 Android 和 iOS 平台?

QuickBlox - 对话框必须在 Objective-C 的内存缓存中

如果用户不在聊天室中,Android quickblox 如何接收消息