我有一个应用程序通过更改版本代码而用新版本进行了远程更新。更新从后端推送,手机正在使用adb OTA客户端更新apk。当我的应用程序更新了新版本代码时如何接收广播本身android
完成OTA更新后,我需要使用应用程序以编程方式将状态发送到后端。
我可以这样做,使用启动器,它实际上正在接收包更改或删除相关的意图操作,然后启动主应用程序。然后,应用程序会将OTA更新状态发送到后端,而无需任何用户交互。 以下是示例代码。 在桌面应用清单:
<receiver android:name=".receivers.PackageChangedReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<data android:scheme="package"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
这里是接收器:
@Override
public void onReceive(Context context, Intent intent) {
String packageName=intent.getData().getEncodedSchemeSpecificPart();
if(packageName.contains(context.getString("packagename")))
context.startActivity(new Intent(context, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK));
}
现在我的问题是我怎么可以做同样的事情一样推出的主要的应用程序,并发送OTA仅在OTA更新后的应用程序中使用主应用程序更新状态,而不在应用程序中启动任何启动器和用户交互?
我不明白你的问题。你说你已经在做这些事情,然后你问怎么做?请更详细地解释你正在做什么以及你没有做什么,但需要帮助。 –
@DavidWasser是的,我可以使用第三方应用程序(如启动器应用程序)负责接收主应用程序包更改广播状态并将其发送到后端。我的问题是,我可以做同样的事情,没有任何第三方应用程序的帮助。只使用我的主要应用程序。 – 0xalihn