0

我在我的应用程序中使用 Quickblox 进行聊天功能,GCM 已正确设置,并且与 Quickblox 的推送通知一起功能齐全。但是现在google开发者文档强烈建议GCM用户应该迁移到FCM。迁移到 FCM 后,我注意到设备令牌 ID 的格式与我在使用 GCM 时获得的格式不同。所以我现在面临的是除Quickblox 推送通知之外的所有其他推送通知都在工作,我认为这背后的原因是设备令牌标识符。有没有人遇到过这样的问题?请在这里帮助我。

4

1 回答 1

-1

我不确定如何提供帮助。基本上,你需要迁移到 FCM,如果你没有迁移到 Quickblox 的 3.2 版本。我将列举主要步骤:

  1. 按照 Google 指南从 GCM 迁移到 FCM。
  2. 集成自动推送订阅和 FCM 服务。在清单中插入:

    <meta-data android:name="com.quickblox.messages.TYPE" android:value="FCM" />
    <meta-data android:name="com.quickblox.messages.SENDER_ID" android:value="@string/sender_id" />
    <meta-data android:name="com.quickblox.messages.QB_ENVIRONMENT" android:value="DEVELOPMENT" />
    
    <service
       android:name="com.quickblox.messages.services.fcm.QBFcmPushListenerService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    
  3. 通过以下方式接收事件:

        private BroadcastReceiver pushBroadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String message = intent.getStringExtra(“message”);
                String from = intent.getStringExtra("from");
                Log.i(TAG, "Receiving message: " + message + ", from " + from);
            }
        };
    
        LocalBroadcastManager.getInstance(this).registerReceiver(pushBroadcastReceiver,
                new IntentFilter("new-push-event"));
    

我发现这是运行所需的最低代码。但是如果您查看 Quickblox 文档并了解他们的方法会更好。

我的印象是他们的文档没有与他们的代码一致地增长......这个问题可能会破坏平台:(

https://quickblox.com/developers/SimpleSample-messages_users-android#Steps_to_setup_SDK_Settings

请记住在 Quickblox: 中插入您的 FCM 服务器密钥,而不是旧服务器密钥Your App > Push Notifications > Settings

于 2017-03-22T23:43:39.200 回答