バージョンコードを変更して新しいバージョンでリモート更新されるアプリケーションがあります。更新はバックエンド側からプッシュされ、電話は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