4

ユーザーがボタンをクリックしたときにアプリケーションをアンインストールします。このコードで:

Uri packageURI = Uri.parse("package:"
        + pkNames[position]);
Intent uninstallIntent = new Intent(
Intent.ACTION_DELETE, packageURI);
context.startActivity(uninstallIntent);

ただし、一部のアプリケーションはアンインストールできません。設定や音楽など...これらのアプリケーションをアンインストールしようとすると、次のように表示されます:アンインストールが成功しません。

私はこのコードでパッケージを取得します:

        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        packages = pm.queryIntentActivities(mainIntent, 0);

アプリケーションがアンインストール可能かどうかを検出するにはどうすればよいですか?

4

1 に答える 1

3

アンインストールしようとしているアプリケーションが「システム」であるかどうかを調べることで確認する必要がありますApplicationInfo.flags。システムアプリケーションにApplicationInfo.FLAG_SYSTEMビットが設定されています。ここに小さなコードがあります:

boolean isSystem(ApplicationInfo info) {
   return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}

その他の有用なフラグについては、ApplicationInfoクラスのドキュメントを確認してください。

于 2012-09-30T10:23:24.113 に答える