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

StackOverflow https://stackoverflow.com//questions/12660365

  •  11-12-2019
  •  | 
  •  

質問

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

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クラスのドキュメント 他の有用なフラグのために。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top