72

プログラムでアプリアイコンを非表示にするために以下のコードを使用しました

try{
    PackageManager p = getPackageManager();
    p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}catch (Exception e) {
    e.printStackTrace();
}

プログラムでアイコンを表示したい

4

6 に答える 6

133

以下のコードを使用して、アプリのアイコンを非表示にします。

PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class); // activity which is first time open in manifiest file which is declare as <category android:name="android.intent.category.LAUNCHER" />
p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

アプリのアイコンを元に戻す方法は次のとおりです。

PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

重要な編集:

docsによると、Android Q (API 29) 以降、次の場合を除き、すべてのアプリ アイコンがランチャーに表示されます。

Android Q の時点で、アプリが次の条件の少なくとも 1 つを満たさない限り、アプリのアクティビティまたは合成されたアクティビティの少なくとも 1 つが返されるリストに表示されます。

  • アプリはシステムアプリです。
  • アプリは権限を要求しません。
  • アプリのマニフェストの タグには、アプリ コンポーネントを表す子要素が含まれていません。

さらに、システムは、次のエンタープライズ関連のケースで、一部またはすべてのアプリの統合されたアクティビティを非表示にします。

  • デバイスが完全に管理されたデバイスである場合、返されるリストにはどのアプリの合成されたアクティビティも表示されません。
  • 現在のユーザーが仕事用プロファイルを持っている場合、ユーザーの仕事用アプリの合成されたアクティビティは返されたリストに表示されません。
于 2014-03-31T06:08:05.480 に答える