android - 为不同的服务器获取不同的 GCM RegistrationId

标签 android google-cloud-messaging

我正在使用GCM用于触发我的 Android 应用程序的通知。通知是从我的服务器触发的。例如,假设用户在应用程序中注册了一个帐户,那么服务器将发送通知,告知我在注册请求中传递 GCM 注册 ID。到目前为止,它运行良好。现在我又多了一个 API,它是另一台服务器。我在该请求中发送相同的 GCM 注册 ID,但我没有从该服务器收到任何通知,因此通过一些阅读,我发现每个 registration_id 都与特定应用程序及其相应的关联服务器 API key ,即单个设备对于不同的应用程序具有不同的 registration_id 因此,我们在尝试使用 registration_id 发送推送通知时收到 MismatchSenderId 错误>。我该如何解决这个问题?我用谷歌搜索过,没有找到任何合适的解决方案。

我以这种方式生成 GCM 注册:

 String token = instanceID.getToken(defaultSenderId),
                        GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

最佳答案

由于您有 2 个不同的服务器,因此我相信您有两个不同的发件人 ID。因此,在您的代码中,您必须有 2 个 token ,每个服务器一个。

示例:

服务器 1 的 token :

String token = instanceID.getToken(<sender_id_1>),
                    GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

服务器 2 的 token :

String token2 = instanceID.getToken(<sender_id_2>),
                    GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

关于android - 为不同的服务器获取不同的 GCM RegistrationId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34609062/

相关文章:

android - Google 的 Firebase 下游消息的 http post 请求的 `Authorization` 部分是什么?

支持 iOS Web 通知吗?

php - 即使使用不同的折叠键,Android GCM 也会崩溃

android - 客户端与 Cloud Endpoints 的客户端通信

android - 在 Azure 通知中心的 "Test Send"上收到错误请求 (400)

Android - 是否无法更改 ActionBar 中搜索图标的颜色?

android - 警告 : Failed to find package build-tools 29. 0.2:找不到命令

java - Android:为什么我的按钮不播放它的音效?

android - 呈现问题 :Binary XML file line #-1: No start tag found

android - 当我 'Let Google create and manage my app signing key' 时,应用程序签名 key 的有效期是多长时间?