注册混乱Android GCM

Gau*_*wal 10 android android-c2dm google-cloud-messaging

我正在尝试迁移到GCMAndroid,C2DM现在已被弃用.所描述的注册过程这里是从描述登记不同这里.两个注册都一样吗?我们可以看到代码GCMRegistrar以确定吗?

Sev*_*yev 6

我已成功将C2DM项目迁移到GCM.经测试,它工作正常.唯一的变化是:

  • 在Android应用中 - 更改sender注册时的值
  • 在服务器端 - 更改身份验证标头和URL

就这一点而言,就谷歌的互动而言.应用程序的逻辑决定了更多的变化:

  • 在Android应用中,注册ID已缓存在其首选项中.升级后,我会从首选项中删除reg ID以强制重新注册,这次是使用GCM.
  • 将reg ID传递给服务器的逻辑得到了一个额外的布尔参数 - 如果这是C2DM或GCM注册ID
  • 发送消息的逻辑以所述参数为条件.

将C2DM逻辑完全扔出服务器是不明智的 - 不是每个人都升级他们的Android应用程序.旧的,支持C2DM的版本将在野外出现一段时间.谷歌承诺在短期内保持C2DM的运行.因此,消息发送是有条件的 - 根据reg ID类型,它会发送到GCM或C2DM.

编辑:条件逻辑:

if($RegID_Is_GCM)
{
    $Auth = GCM_Auth();
    $URL = $GCM_URL;
}
else
{
    $Auth = C2DM_AUTH();
    $URL = $C2DM_URL;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

它们实际上是一回事.第二个在静态方法中封装第一个并注册广播接收器.您可以将源附加到gcm.jar并亲自查看.你可以在〜/ android-sdks/extras/google/gcm/gcm-client/gcm-src.jar找到源代码