Android GCM多设备令牌

Android GCM多设备令牌,android,push-notification,google-cloud-messaging,Android,Push Notification,Google Cloud Messaging,当不同用户在重新安装应用程序后从同一设备登录时,会在应用程序服务器上为同一用户插入多个设备令牌。这是因为在应用服务器上,我们正在禁用映射到同一GCM注册ID的所有用户ID。这样做是为了通过清除数据来处理来自同一设备的不同用户的登录(在这种情况下,设备令牌保持不变,因此比较解决了问题)。当我们批量发送通知时,我们无法将规范Id映射到用户并禁用它们 我在服务器上的代码是: MulticastResult result = null; Sender se

当不同用户在重新安装应用程序后从同一设备登录时,会在应用程序服务器上为同一用户插入多个设备令牌。这是因为在应用服务器上,我们正在禁用映射到同一GCM注册ID的所有用户ID。这样做是为了通过清除数据来处理来自同一设备的不同用户的登录(在这种情况下,设备令牌保持不变,因此比较解决了问题)。当我们批量发送通知时,我们无法将规范Id映射到用户并禁用它们

我在服务器上的代码是:

            MulticastResult result = null;
            Sender sender = new Sender(GOOGLE_SERVER_KEY);
            Message messag = new Message.Builder().timeToLive(86400)
                    .delayWhileIdle(false)
                    .addData(MESSAGE_KEY, notificationJsonObject.toString())
                    .build();
            try {
                Result result = sender
                        .sendNoRetry(messag, androidDevicesTokens);
                result.getResults().get(0).getCanonicalRegistrationId();
            } catch (IOException e) {
                e.printStackTrace();
            }
当我们批量发送通知时,我们无法将规范Id映射到用户并禁用它们

将规范ID映射到应该删除的旧注册ID应该没有问题

如果
result.getResults().get(i)
包含规范注册ID,则要删除的匹配旧注册ID为
androidDevicesTokens.get(i)