0

嗯,我知道android设备registration_id -s在应用程序版本更新后发生更改。因此,一旦我在Play商店和用户设备上更新应用程序(自动)将应用程序更新至新版本,如何将通知推送至其设备? - 因为在该时间间隔内(应用程序已更新,但从未在更新后打开)设备需要重新注册。应用程序更新后的推送通知

回答

2

当你的应用程序更新时,系统发出两次广播:ACTION_MY_PACKAGE_REPLACED(只发送给您的应用程序,在API 12(3.1可用)或更高版本)和ACTION_PACKAGE_REPLACED(发送到每一个应用程序,请检查意向getData()得到包名称,可在所有API级别上使用)。

您可以在您的AndroidManifest.xml中创建一个BroadcastReceiver,它侦听广播并启动一个服务,然后按照PushBullet's blog of reliable GCM的建议重新注册到GCM。

我强烈建议禁用任何接收器在Android 3.1+设备上广播ACTION_PACKAGE_REPLACED广播,否则您的接收器/进程也会在其他应用上触发(在这种情况下,您需要两个接收器:一个用于< 3.1,一个用于> = 3.1,并使用带有布尔资源的android:enabled以基于API级别适当地禁用它们)。