Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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
Java 应用程序重新安装后的Android c2dm推送通知_Java_Android_Push Notification_Android C2dm_Reinstall - Fatal编程技术网

Java 应用程序重新安装后的Android c2dm推送通知

Java 应用程序重新安装后的Android c2dm推送通知,java,android,push-notification,android-c2dm,reinstall,Java,Android,Push Notification,Android C2dm,Reinstall,我有以下问题: 我已经在我的应用程序中成功地实现了C2DM。我正在向谷歌c2dm云和一个“创建”通知内容的定制服务器注册。一切正常。 我的问题是:当我卸载我的应用程序,然后在同一台设备上重新安装时会发生什么?我注意到C2DM正在向我发回相同的app_密钥,因此显然无法确定我的app安装状态的更改。我还不断收到旧的推送通知(它们是根据应用程序中的用户偏好定制的)。 在最终发布之前,我无法使用google play发布的应用程序进行测试,因此我想知道google是否有可能通知c2dm该应用程序已在我

我有以下问题:

我已经在我的应用程序中成功地实现了C2DM。我正在向谷歌c2dm云和一个“创建”通知内容的定制服务器注册。一切正常。 我的问题是:当我卸载我的应用程序,然后在同一台设备上重新安装时会发生什么?我注意到C2DM正在向我发回相同的app_密钥,因此显然无法确定我的app安装状态的更改。我还不断收到旧的推送通知(它们是根据应用程序中的用户偏好定制的)。 在最终发布之前,我无法使用google play发布的应用程序进行测试,因此我想知道google是否有可能通知c2dm该应用程序已在我的设备上卸载,并在下次重新启动时强制它更改我的应用程序id

提前谢谢
Stefano

根据我在C2DM中的理解,你不应该依靠谷歌的注册ID。他们什么也不“承诺”——你甚至可能在没有明确原因的情况下获得一个新的注册ID(可能是他们自己的版本升级等)。
如果你想进行安装-你应该使用自己的服务器-在应用程序要求注册时创建一个唯一标识符,并使用它而不是谷歌的注册ID。
关于Google Play,在发布的应用程序和未发布的应用程序之间找不到区别,行为似乎是一样的。
希望这能有所帮助。

Shushu

你说得对,事实上,我并不依赖谷歌的注册ID:在每次应用程序启动时,我都会要求一个新ID,可以是一个新ID,也可以是旧ID;在任何情况下,我都会存储接收到的值,并将其与自定义应用程序参数一起传递给外部服务器。问题是,对于新安装,我的应用程序中可能没有设置自定义首选项(我正在发送一个最喜欢的项目列表,我希望收到关于它们的新闻的通知,但在新安装时,我的列表是空的),而外部服务器忽略了一个空列表。服务器人员必须实现它:)