我正在使用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/