アプリケーションがアンインストール可能であることを検出するにはどうすればよいですか?
質問
ユーザーがボタンをクリックしたときにアプリケーションをアンインストールします。このコードで:
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);
アプリケーションがアンインストール可能かどうかを検出するにはどうすればよいですか?
解決
アンインストールしようとしているアプリケーションが「システム」であるかどうかを調べて確認する必要があります ApplicationInfo.flags
.システムアプリケーションは持っています ApplicationInfo.FLAG_SYSTEM
ビットセット。ここに小さなコードがあります:
boolean isSystem(ApplicationInfo info) {
return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}
チェック ApplicationInfoクラスのドキュメント 他の有用なフラグのために。
所属していません StackOverflow