Новый API для добавления ярлыков и виджетов в Android 8.0 позволяет разработчикам приложений добавлять ярлыки и виджеты из приложения, а не из панели виджетов. Кроме того, по соображениям безопасности мы отказываемся от старого метода добавления ярлыков (отправки широковещательного сообщения).
Чтобы разработчики приложений могли полагаться на систему при добавлении ярлыков или виджетов, в лаунчерах должна быть реализована поддержка этой новой функции.
Примеры и источник
Документы доступны в различных системных классах. В справочных материалах есть:
- ShortcutManager.java
Раздел "Публикация закрепленного ярлыка" в заголовке. - Intent.java
Документация Javadoc для ACTION_CREATE_SHORTCUT. - AppWidgetManager.java
Javadoc для requestPinAppWidget.
Реализация
Производителям устройств необходимо добавить в программу запуска объект Activity с действиями фильтра интентов:
android.content.pm.action.CONFIRM_PIN_SHORTCUTandroid.content.pm.action.CONFIRM_PIN_APPWIDGET
Подробная информация приведена в документации по API.
В этом случае пользователю должно показываться подтверждение добавления запрошенного виджета или ярлыка. Если пользователь соглашается, виджет или ярлык добавляется на главный экран.
В случае с виджетами вызов accept() должен включать идентификатор добавленного виджета.
Реализация интерфейса системы
Партнерам необходимо обновить приложение панели запуска, используя реализацию Launcher3 (packages/apps/Launcher3) в качестве справочной информации.
Найдите нужные изменения Launcher3 в Android Open Source Project (AOSP):
- Change-Id: 8b2002e28072c52d78f6d052c6ff6da50a2d0324
- Change-Id: 278359539c02ca160caf1df54ce96053a2a2ef59
Проверка
Чтобы проверить работу функции, попробуйте добавить ярлыки из Chrome или приложения "Контакты" и убедитесь, что появляется запрос на подтверждение. После этого значок должен появиться на главном экране, а в Chrome должно появиться всплывающее уведомление об успешном добавлении.