我正在使用QuickBlox在我的应用程序中聊天,GCM已正确设置,并且它功能齐全,并随着QuickBlox的推送通知。但是现在,Google开发人员文档强烈建议GCM用户应迁移到FCM。迁移到FCM后,我注意到设备令牌ID的格式与使用GCM时所获得的格式不同。因此,我现在面对的是我所有的所有其他推送通知都可以正常工作,而 QuickBlox推动通知,我认为此背后的原因是设备令牌标识符。有人面临这个问题吗?请在这里帮助我。
我不确定如何准确提供帮助。基本上,您需要迁移到FCM并迁移到3.2版的QuickBlox,如果您不这样做。我将列举主要步骤:
- 遵循Google指南从GCM迁移到FCM。
-
集成了自动PUSH订阅和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>
-
接收类似的事件:
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/simplesame-messages_users-android#steps_to_setup_sdk_settings。
记住插入您的FCM服务器密钥,而不是QuickBlox中的旧服务器密钥:
Your App > Push Notifications > Settings
。