Android как программно скрыть значок запуска - PullRequest
44 голосов
/ 15 ноября 2011

Мое приложение предназначено для запуска только один раз.Поэтому я хочу скрыть значок из модуля запуска после первого запуска, но без удаления приложения.

Я видел похожие приложения - они могут удалять свои собственные значки из списка приложений модуля запуска.Как я могу достичь таких же результатов?Спасибо.

Ответы [ 4 ]

65 голосов
/ 15 ноября 2011
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

Обратите внимание, что значок может не исчезнуть до следующей перезагрузки.

11 голосов
/ 16 мая 2015

Скрыть значок приложения, используя код ниже

PackageManager pkg=this.getPackageManager();
pkg.setComponentEnabledSetting(new ComponentName(this,SplashActivity.class),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                        PackageManager.DONT_KILL_APP);

// активность, которая впервые открывается в файле манифеста, который объявлен как <category android:name="android.intent.category.LAUNCHER" />

Вот как вернуть значок приложения

PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this,SplashActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
1 голос
/ 06 марта 2017

Вы можете создать приложение без модуля запуска, НЕ включив фильтр намерений с MAIN и LAUNCHER в объявление Activity в AndroidManifest - тогда возникает вопрос, как выполнить первый запуск ... Возможно, виджет?

0 голосов
/ 26 июня 2019

С Android Q Beta (API 29) Google изменил поведение иконки запуска Launcher . Даже если вы отключите активность Launcher или полностью удалите android.intent.category.LAUNCHER <intent-filter> из всех ваших действий, приложение появится в панели запуска и откроет настройки приложения, за исключением:

  • Пакеты, которые не декларируют никаких разрешений в соответствующих файлах манифеста
  • Системные приложения
  • Приложения, которые не содержат никаких компонентов внутри тег соответствующего манифеста

Я обновлю этот пост, если окончательный выпуск изменится.

...