首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现C2DM注册的最佳实践

实现C2DM注册的最佳实践
EN

Stack Overflow用户
提问于 2011-05-03 02:52:29
回答 2查看 2.7K关注 0票数 8

我正在开发一个使用C2DM接收推送通知的应用程序。我已经实现了整个C2DM电路(客户端和服务器),并且运行良好。

目前,我的应用程序有一个按钮来引导C2DM注册,当从Google收到注册id令牌时,我在我的应用服务器上调用一个webservice来将设备与注册id相关联。

我将在我的应用程序中实现身份验证,我有几个与C2DM注册的处理有关的问题。

  1. 客户端应用程序(即Android应用程序)将有一个登录屏幕作为第一个屏幕,这样用户就可以输入凭据。一旦验证了凭据,我就计划调用C2DM注册,以便用户获得与注册id令牌相关联的信息。这样可以吗?在以后执行应用程序时,我可能会存储凭据或某种令牌,这样用户就不需要再次输入凭据了,在应用程序启动时,我是否也应该启动C2DM注册呢?
  2. 我知道Google可能最终会更新注册id。是否也定期更新注册id是一种良好做法?如果是,什么时候批准?注册标识过期了吗?
  3. 在客户端和服务器之间的注册id去同步的罕见情况下,会发生什么情况(例如,新的注册id到达客户端,在其中使用旧的注册id在服务器上触发一个新事件,然后注册id到达服务器)?谷歌会处理这个案子吗?我的应用服务器应该处理这种情况吗?
  4. 当一个新的注册id从Google到达时,如果服务器无法到达,会发生什么情况?我应该退一步,安排一个闹钟再试一次吗?
  5. 你能想到其他的陷阱吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-03 05:07:49

1)我会尽快开除C2DM注册。没有什么特别之处,但由于请求是异步的,尽早启动它将有助于我更快地获得reg ID。然而,没有必要在每次启动应用程序时启动注册。一次就够了。

2)每当Google决定更新reg ID时,它都会将其发送到设备上,并且您需要执行第一次收到reg id时所遵循的相同步骤,即将其传送到服务器。

3和4)您可能想通过这个文档。它强调了这样一个事实,即您需要确保将注册ID发送到服务器并继续尝试。我在这里假设,如果刷新了reg ID,并且您的服务器仍然有旧的ID,它将无法向设备发送消息。它将收到一个带有InvalidRegistration错误代码的200 or,这意味着一个(丢失或)错误的注册id。

( 5)不能多加评论--会说这取决于你的应用程序的设计。但有一点值得注意的是,C2DM仍然在Beta,所以从长远来看,情况会有所不同。

票数 6
EN

Stack Overflow用户

发布于 2011-09-16 02:04:57

  1. 尝试提示用户选择已经在电话上的google帐户。http://code.google.com/p/chrometophone/source/checkout显示了这一点。查看SetupActivity.java for getGoogleAccounts(),等等。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5864577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档