3

ユーザーがアプリをインストールまたは削除するタイミングを検出したいのですが、これを実行するアプリが見つかりませんでしたBroadcastReceiver

私のアプリでは、インストールされているアプリに関する情報をクラスPackageManagerで取得していますが、アプリを定期的にスキャンしたくありません。これを行うものはありますBroadcastReceiverか?または何かContentObserver?アプリがインストールまたは削除されたという通知を受け取ることはできますか?

4

1 に答える 1

8

BroadcastReceiverを使用して登録できますIntent.ACTION_PACKAGE_ADDEDIntent.ACTION_PACKAGE_REMOVEDおよび/またはIntent.ACTION_PACKAGE_CHANGED必要に応じて)。例えば、

void registerReceiver() {
    IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
    filter.addDataScheme("package_name");     
}

public void onReceive(Context context, Intent intent) {
    final String action = intent.getAction();

    if (action.equals(Intent.ACTION_PACKAGE_ADDED)) {
        Uri data = intent.getData();
        String pkgName = data.getEncodedSchemeSpecificPart();
    }

    /* etc. */
}
于 2012-07-14T22:23:31.913 に答える