Pull to refresh

Удаление иконки приложения из лаунчера

Reading time1 min
Views5.8K
Перевод заметки когда то найденной на страницах Интеренета.

Создать приложение которое не появляется в списке запускаемых приложений вместе с иконкой легко. Достаточно поместить в файл манифеста следующие строки:

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>


Задача удаления иконки приложения после инсталляции дело немного более хитрое.


Вы не можете самостоятельно запретить показ иконки, зато вы можете запретить один из компонентов приложения:

ComponentName componentToDisable = new ComponentName("ua.at.tsvetkov.myapp", "ua.at.tsvetkov.myapp.YouLauncherActivity");
getPackageManager().setComponentEnabledSetting(componentToDisable, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);


Ограничения:

  • Выключенный компонент не будет запускаемым в любом случае
  • Другие не выключенные Activity будут запускаться из других приложений
  • Приложение может выключить только свой собственный компонент. Есть разрешение «android.permission.CHANGE_COMPONENT_ENABLED_STATE», но оно не работает, приложения третьих сторон не имеют этого доступа к этому разрешению.
  • Иконка исчезнет после рестарта лаунчера, поэтому при следующей перезагрузке телефона форсировать рестарт лаунчера не рекомендуется.
Tags:
Hubs:
0
Comments7

Articles

Change theme settings