相关疑难解决方法(0)

处理Android上的Google Cloud Messaging中的注册ID更改

在Google Cloud Messaging的文档中,它指出:

Android应用程序应该存储此ID以供以后使用(例如,如果已经注册,则检查onCreate()).请注意,Google可能会定期刷新注册ID,因此您应该设计Android应用程序,并了解可能会多次调用com.google.android.c2dm.intent.REGISTRATION意图.您的Android应用程序需要能够做出相应的响应.

我使用以下代码注册我的设备:

GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context);
String regID = gcm.register(senderID);
Run Code Online (Sandbox Code Playgroud)

GoogleCloudMessaging类封装了注册过程.那么我想如何处理com.google.android.c2dm.intent.REGISTRATION,因为处理是由GoogleCloudMessaging类在内部完成的?

android push-notification google-cloud-messaging

77
推荐指数
2
解决办法
6万
查看次数

GCM规范ID

当为1个设备GCM具有多个regids时,返回规范id错误:

{"multicast_id":xxxx,"success":2,"failure":0,"canonical_ids":1,"results":[{"message_id":"xxxxx"},{"registration_id":"newest reg ID here","message_id":"xxxxxx"}]}
Run Code Online (Sandbox Code Playgroud)

所以它显示了GCM应该使用的最新regid,但为什么不显示你应该删除的regid(旧的)?我怎么知道旧的regid是什么以及我应该从我的数据库中删除哪一个?

java android push-notification google-cloud-messaging

15
推荐指数
1
解决办法
5389
查看次数

gcm规范id应该更新或不更新

我正在开发一个使用gcm的android项目.我开始知道,如果我们从设备上卸载app并重新安装,设备会获得新的注册ID.然后,如果我们不从应用程序服务器删除旧的并更新,则消息将发送到两个ID并且在响应它将显示规范ID存在.我的问题是,此时消息将成功发送到该设备或不?

android push-notification google-cloud-messaging

6
推荐指数
1
解决办法
4318
查看次数

GCM的注册ID重复

我们有一个使用GCM的应用.当用户首次打开应用程序时,应用程序会检查共享首选项以查看用户是否先前已注册.如果注册ID不是从GCM获取并存储到共享首选项.还有一个第三方服务器,其中存储了用户ID和注册ID.我阅读并实现了以下针对规范id问题的案例:

  1. 在发送通知期间,如果接收到新的注册ID(规范id),则使用第三方服务器中的规范id更新旧的注册ID.
  2. 当用户卸载应用程序时,当第三方服务器向卸载的应用程序注册ID发送通知时,未收到注册消息,并且从第三方数据库中删除注册ID.

作为开发人员,我们在数据库中存储了许多注册ID.因为我们经常卸载并安装应用程序.通常用户不会这样做.然后我们考虑使用设备ID作为设备的唯一ID,并检查用户是否先前注册过.可以使用Android设备ID吗?我应该考虑什么来防止设备的多个注册ID?这些多个注册ID会导致多次推送到Android设备.多个注册ID主要由以下原因引起:

  1. 该应用程序最近已卸载并重新安装.如何检测用户已卸载并已安装且已有注册ID?
  2. 最近清除了缓存和/或清除了应用程序的数据.我怎样才能检测到用户清除了应用数据并且已经注册了注册ID?

处理规范ID的最佳做法是什么?

android canonical-link google-cloud-messaging

6
推荐指数
1
解决办法
900
查看次数