3

今、私はホームランチャーアプリケーションに取り組んでいます.デフォルトのホームランチャー(例:Samsung Home)のデフォルトをクリアしたいです。つまり、プログラムで表示したいSettings-> Applications->Manage Application->Samsung Home->clear defaults

これをコードで表示するにはどうすればよいですか?

前もって感謝します

4

2 に答える 2

6

注: この質問はアプリケーション設定の管理オプションへのアクセスに限定されているため、私の回答はそれをカバーしています。実際のパッケージ名を取得する方法を理解する必要があります。

また、コードを介してデフォルトを自動的にクリアすることも考えている場合、私の知る限り、それはできません。私がこれについて間違っている場合、誰かが私を修正できます。

つまり、このコードは、アプリから特定のアプリケーションの[アプリケーションの管理] 画面を開きます (パッケージ名を指定する必要があります)。

Intent showSettings = new Intent();
showSettings.setAction(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uriAppSettings = Uri.fromParts("package", "THE_APP_PACKAGE_NAME", null);
showSettings.setData(uriAppSettings);
startActivity(showSettings);

たとえば、Google マップ アプリケーションのパッケージ名が である場合、をそれcom.google.android.apps.mapsに置き換えるTHE_APP_PACKAGE_NAMEと、コードはGoogle マップ アプリケーションの[アプリケーションの管理]画面を開きます。

アップデート:

PackageManager には、コードを介してデフォルトをクリアするために使用されるメソッドclearPackagePreferredActivitiesがあります。ただし、新しい Android バージョンでは機能しないようです: https://stackoverflow.com/a/10246711/450534

読む価値のある他の投稿:

  1. https://stackoverflow.com/a/7750187/450534
  2. https://groups.google.com/forum/?fromgroups=#!topic/android-developers/Rzv8VU-EUAw
于 2013-04-04T04:23:44.360 に答える
0

「THE_APP_PACKAGE_NAME」を取得するには、次のようなものを使用できます。

 Intent intent = new Intent(Intent.ACTION_MAIN);
 intent.addCategory(Intent.CATEGORY_HOME);
 ResolveInfo resolveInfo = getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
 String packageName = resolveInfo.activityInfo.packageName;
于 2014-11-12T15:30:14.370 に答える