Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android C2DM注册Id更改频率_Android_Android Notifications_Android C2dm - Fatal编程技术网

Android C2DM注册Id更改频率

Android C2DM注册Id更改频率,android,android-notifications,android-c2dm,Android,Android Notifications,Android C2dm,我已经开发了一款Android应用程序(还没有上市),我正在努力找出C2DM失败的原因。我可以注册我的设备,并获得注册Id 我已经建立了一个服务器应用程序,将请求提交到谷歌的C2DM服务器,我得到了一个200响应和一个消息id(成功)。问题是,我的设备从未收到这些信息 让我吃惊的是,如果我在几秒钟内注册一台设备两次,我会得到一个不同的注册id。他们很可能把时间当作种子 此注册id频繁更改是否正常?有任何线索/建议(我已经阅读了指南) 干杯 注: 我没有sim卡,我只使用公司的WiFi网络。我最后

我已经开发了一款Android应用程序(还没有上市),我正在努力找出C2DM失败的原因。我可以注册我的设备,并获得注册Id

我已经建立了一个服务器应用程序,将请求提交到谷歌的C2DM服务器,我得到了一个200响应和一个消息id(成功)。问题是,我的设备从未收到这些信息

让我吃惊的是,如果我在几秒钟内注册一台设备两次,我会得到一个不同的注册id。他们很可能把时间当作种子

此注册id频繁更改是否正常?有任何线索/建议(我已经阅读了指南)

干杯

注:
我没有sim卡,我只使用公司的WiFi网络。我最后的希望是,我的网络上的5228端口可能已关闭

我也遇到了类似的问题,问题在于应用程序中我没有发送用于注册C2DM消息的正确电子邮件地址。所以它一直在失败


因此,在从设备注册C2DM时,检查您是否将正确的电子邮件地址作为发件人的电子邮件地址发送,该设备是向google注册的推送通知电子邮件地址

我也遇到了类似的问题,问题在于应用程序中我没有发送用于注册C2DM消息的正确电子邮件地址。所以它一直在失败


因此,在从设备注册C2DM时,检查您是否将正确的电子邮件地址作为发件人的电子邮件地址发送,该设备是向google注册的推送通知电子邮件地址

谷歌表示C2DM随时都会改变。因此,您必须使用设备的正确注册id更新服务器。如果id服务器与google发送到您设备的id服务器不匹配,它将无法提供推送

因此,作为一条金科玉律,“在获得最新的c2dm注册id后,始终使用该id更新服务器”

如果谷歌回复为200,那么正文应该包含一个id。如果有错误,正文中就会有错误。下面给出了错误代码

  • QUOTAEEXCEEDED-发件人发送的邮件太多。请稍后重试
  • DeviceQuotaExceed—发件人发送到特定设备的邮件过多。请稍后重试
  • MissingRegistration-缺少注册id。发件人应始终将注册id添加到请求中
  • InvalidRegistration-错误的注册id。发件人应删除此注册id
  • 不匹配SenderId-注册id中包含的发件人id与用于向C2DM服务器注册的发件人id不匹配
  • NotRegistered-用户已卸载应用程序或关闭通知。发件人应停止向此设备发送消息并删除注册id。客户端需要重新向c2dm服务器注册以再次接收通知
  • MessageTooBig—消息的负载太大,请参阅限制。减小消息的大小
  • 缺少折叠键-需要折叠键。在请求中包含折叠键

此信息来自谷歌称C2DM将随时改变。因此,您必须使用设备的正确注册id更新服务器。如果id服务器与google发送到您设备的id服务器不匹配,它将无法提供推送

因此,作为一条金科玉律,“在获得最新的c2dm注册id后,始终使用该id更新服务器”

如果谷歌回复为200,那么正文应该包含一个id。如果有错误,正文中就会有错误。下面给出了错误代码

  • QUOTAEEXCEEDED-发件人发送的邮件太多。请稍后重试
  • DeviceQuotaExceed—发件人发送到特定设备的邮件过多。请稍后重试
  • MissingRegistration-缺少注册id。发件人应始终将注册id添加到请求中
  • InvalidRegistration-错误的注册id。发件人应删除此注册id
  • 不匹配SenderId-注册id中包含的发件人id与用于向C2DM服务器注册的发件人id不匹配
  • NotRegistered-用户已卸载应用程序或关闭通知。发件人应停止向此设备发送消息并删除注册id。客户端需要重新向c2dm服务器注册以再次接收通知
  • MessageTooBig—消息的负载太大,请参阅限制。减小消息的大小
  • 缺少折叠键-需要折叠键。在请求中包含折叠键

此信息来自

是的,正如Rihan所说,每次您注册设备时,您将获得一个新的
注册ID
。如果您获得
注册ID
,则您的c2dm已从google服务器成功实施。现在您必须将此ID发送到您的服务器。使用此ID,您已向服务器发送推送通知你的设备


现在,您将在C2DReceiver的OnReceive()方法中获得消息,并且您必须处理此消息(可以向用户发出通知)

是的,正如Rihan所说,每次注册设备时,您将获得一个新的
注册ID
。如果您获得
注册ID
,则您的c2dm已从google服务器成功实现。现在您必须将此ID发送到服务器。使用此ID,您已向设备发送推送通知


现在,您将在C2DReceiver的OnReceive()方法中获得消息,并且您必须处理此消息(请您向用户发出通知)

,尽管Rihan是正确的。注册id每次都会更改。我没有收到消息的原因是端口被锁定

对于其他谷歌用户,在你发疯之前确保5228是打开的…

Alt