androidリスニングappインストールとアンインストール
3456 ワード
多くの場合、プログラムがインストールまたはアンインストールに成功したかどうかを傍受する必要があり、androidシステムでは、インストールとアンインストールがブロードキャストされ、アプリケーションのインストールが完了するとandroidが送信.intent.action.PACKAGE_ADDED放送.intent.getDataString()は、インストールされているパッケージ名を取得します.プログラムをアンインストールするとandroidが送信されます.intent.action.PACKAGE_REMOVED放送.同じだgetDataString()は、アンインストールされたパッケージ名を取得します.
したがって、BroadcastReceiverを1つカスタマイズして、システムブロードキャストの傍受と処理を行うだけです.
1、カスタムブロードキャストカスタムブロードキャストMyInstalledReceiverはBroadcastReceiverから継承し、そのonReceive()方式を実現し、具体的なコードは以下の通りである.
2、登録傍受
1)xml方式:AndroidManifest.xmlプロファイルのApplicationノードの下に、AndroidManifestでカスタム登録リスニングMyInstalledReceiverを追加します.xmlに追加された登録リスニングは、デフォルトではアプリケーション全体のライフサイクルです.
2)コード方式:一般的にActivityのonStart()メソッドにリスニングを登録し、onDestroy()メソッドでリスニングをログアウトする(onStop()メソッドでログアウトすることもでき、ライフサイクルログアウト時に終了する).
3、インストール、アンインストール情報を保存する
一般的には、プログラムへのインストール、アンインストール情報を使用する必要があるので、情報を格納する必要があります.Sqliteデータベースを使用するか、プリファレンスなどを使用するのが良いです.
したがって、BroadcastReceiverを1つカスタマイズして、システムブロードキャストの傍受と処理を行うだけです.
1、カスタムブロードキャストカスタムブロードキャストMyInstalledReceiverはBroadcastReceiverから継承し、そのonReceive()方式を実現し、具体的なコードは以下の通りである.
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class BootReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent){
//
if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
String packageName = intent.getDataString();
System.out.println(" :" +packageName + " ");
}
//
if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {
String packageName = intent.getDataString();
System.out.println(" :" + packageName + " ");
}
}
}
2、登録傍受
1)xml方式:AndroidManifest.xmlプロファイルのApplicationノードの下に、AndroidManifestでカスタム登録リスニングMyInstalledReceiverを追加します.xmlに追加された登録リスニングは、デフォルトではアプリケーション全体のライフサイクルです.
2)コード方式:一般的にActivityのonStart()メソッドにリスニングを登録し、onDestroy()メソッドでリスニングをログアウトする(onStop()メソッドでログアウトすることもでき、ライフサイクルログアウト時に終了する).
@Override
public void onStart(){
super.onStart();
installedReceiver = new MyInstalledReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.PACKAGE_ADDED");
filter.addAction("android.intent.action.PACKAGE_REMOVED");
filter.addDataScheme("package");
this.registerReceiver(installedReceiver, filter);
}
@Override
public void onDestroy(){
if(installedReceiver != null) {
this.unregisterReceiver(installedReceiver);
}
super.onDestroy();
}
3、インストール、アンインストール情報を保存する
一般的には、プログラムへのインストール、アンインストール情報を使用する必要があるので、情報を格納する必要があります.Sqliteデータベースを使用するか、プリファレンスなどを使用するのが良いです.