嗯,我知道在应用程序版本更新时更改了android设备registration_id -s。因此,一旦我在Play商店更新应用并且用户的设备将应用更新(自动)到新版本,如何将通知推送到他们的设备? - 因为在该时间间隔之间(应用已更新,但是在更新后从未打开过)设备需要重新注册。
答案 0 :(得分:3)
当您的应用程序更新时,系统会发送两个广播:ACTION_MY_PACKAGE_REPLACED(仅发送到您的应用程序,可在API 12(3.1)或更高版本中使用)和ACTION_PACKAGE_REPLACED(发送到每个应用程序,检查Intent上的getData()
以获取所有API级别的包名称。
您可以在BroadcastReceiver
中创建一个AndroidManifest.xml
来监听广播并启动一项服务,然后按照PushBullet's blog of reliable GCM的建议重新注册GCM。
我强烈建议禁用任何在Android 3.1+设备上监听ACTION_PACKAGE_REPLACED
广播的接收器,否则您的接收器/进程也会在其他应用上被触发(在这种情况下,您需要两个接收器:一个用于< 3.1,一个用于> = 3.1并使用android:enabled
和布尔资源根据API级别适当地禁用它们。)