Android, как программно скрыть значок запуска
мое приложение предназначено для запуска только один раз. Поэтому я хочу скрыть значок из панели запуска после первого запуска, но без удаления приложения.
Я видел похожие приложения - они могут удалять свои собственные значки из списка приложений запуска. Как я могу достичь тех же результатов? Спасибо.
Ответы
Ответ 1
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Обратите внимание, что значок может не исчезнуть до следующей перезагрузки.
Ответ 2
Скрыть значок приложения, используя код ниже
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);
Ответ 3
У вас может быть приложение без запуска, НЕ включающее фильтр намерений с MAIN и LAUNCHER в объявлении Activity в AndroidManifest - тогда возникает вопрос, как сделать первый запуск. Виджет может быть?
Ответ 4
В Android Q (API 29) Google изменил поведение видимости иконки Launcher. Даже если вы отключите активность Launcher или полностью удалите
android.intent.category.LAUNCHER <intent-filter>
из всех ваших действий, приложение появится в панели запуска и откроет настройки приложения Android OS, за исключением:
- Пакеты, которые не декларируют никаких разрешений в соответствующих файлах манифеста
- Системные приложения
- Приложения, которые не содержат никаких компонентов внутри
соответствующий тег манифеста