【问题标题】:Quickblox push notification not working with Firebase device tokenQuickblox 推送通知不适用于 Firebase 设备令牌
【发布时间】:2016-12-13 17:38:16
【问题描述】:
我在我的应用程序中使用 Quickblox 进行聊天功能,GCM 已正确设置,并且与 Quickblox 的推送通知一起功能齐全。但现在google developer documentation 强烈建议 GCM 用户应该迁移到 FCM。迁移到 FCM 后,我注意到设备令牌 ID 的格式与我在使用 GCM 时获得的格式不同。所以我现在面临的是除了 Quickblox 推送通知 之外的所有其他推送通知都在工作,我认为这背后的原因是设备令牌标识符。有没有人遇到过这样的问题?请在这里帮助我。
【问题讨论】:
标签:
android
quickblox
quickblox-android
【解决方案1】:
我不确定如何提供帮助。基本上,你需要迁移到 FCM,如果你没有迁移到 Quickblox 的 3.2 版本。我将列举主要步骤:
- 按照 Google 指南从 GCM 迁移到 FCM。
-
集成自动推送订阅和 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/SimpleSample-messages_users-android#Steps_to_setup_SDK_Settings.
请记住在 Quickblox 中插入您的 FCM 服务器密钥,而不是旧服务器密钥:Your App > Push Notifications > Settings。