Я разрабатываю приложение, которое должно добавить ярлык на домашний экран после установки и удалить его после удаления приложения. Приложение будет предварительно установлено на устройстве конечного пользователя, но все равно должно иметь возможность удаления). Задача выглядит очень простой, но я столкнулся с множеством проблем при ее реализации.
Что я сделал:
- Добавить ярлык на домашний экран, используя
com.android.launcher.action.INSTALL_SHORTCUT
при первом запуске приложения или на новом устройстве
перезагрузка.
- Вручную удалите ярлык, используя
com.android.launcher.action.UNINSTALL_SHORTCUT.
Чего я не могу (и почти сдам):
- Автоматически удаляет ярлык при
приложение удаляется.
Невозможно использовать Intent.ACTION_PACKAGE_REMOVED, поскольку удаляемое приложение не получает этого намерения.
Я выполнил несколько тестов и обнаружил, что единственный тип ярлыка, который удаляется с приложением, это ярлык, который создается из меню «Добавить на главный экран => Ярлыки => Приложения => Активность приложения». Ярлыки, которые создаются программно или объявляются в AndroidManifest, остаются на главном экране после удаления приложения.
На форумах почти нет документов и сообщений на эту тему, и меня немного смущает, почему такая простая операция, которая не противоречит политике безопасности Android, не может быть реализована прямым способом.
Можно ли попросить ОС удалить соответствующий ярлык при удалении приложения?
Могу ли я отловить событие, когда приложение удаляется до его удаления?