QBroster为null,从不触发SubscriptionListener

时间:2016-03-05 13:23:07

标签: quickblox

我正在使用 QuickBlox 中的库,我正在处理好友请求部分。为了添加朋友并让他们接受我,我需要使用名为QBRoster的内容。但问题是我初始化时 它由QBRoster

chatroster=QBChatService.getInstance()
        .getRoster(QBRoster.SubscriptionMode.mutual, subscriptionListener);

即使我获得了应用程序的授权,但我创建了一个会话,但我得到了nullpointerexception。 而且,即使我使用subscriptionListener,似乎我从未进入实现的方法,即。该 听众永远不会被解雇。 任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您是否在清单中声明了QbService?

像这样:

<service
            android:name="com.quickblox.q_municate_core.service.QBService"
            android:icon="@mipmap/ic_launcher" />


        <receiver
            android:name="buddy_connect_design.connection_request.GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <category android:name="com.buddy_connect.apurvak.buddyconnectdemo" />
            </intent-filter>
        </receiver>

也可以尝试使用此方法调用:

private class SubscriptionListener implements QBSubscriptionListener
    {

        @Override
        public void subscriptionRequested(int userId)
        {
            try
            {
                Log.e("SubscriptionRequested","Sucess! "+userId);
            } catch (Exception e)
            {

                Log.e("SubscriptionRequested",e.toString());
                e.printStackTrace();
            }
        }
    }

并像这样初始化

chatRoster = QBChatService.getInstance().getRoster(QBRoster.SubscriptionMode.manual, new SubscriptionListener());