Выпуск Android 7.1.1 позволяет разработчикам определять ярлыки для конкретных действий в своих приложениях, которые могут отображаться в средстве запуска. Эти ярлыки приложений позволяют пользователям быстро запускать общие или рекомендуемые задачи в приложении.
Каждый ярлык ссылается на намерение, которое запускает определенное действие в приложении, когда пользователи выбирают ярлык. Примеры действий, которые вы можете выразить в виде ярлыков приложений, включают:
- Навигация пользователей в определенное место в картографическом приложении
- Отправка сообщений другу в приложении для общения
- Воспроизведение следующего эпизода телешоу в мультимедийном приложении
- Загрузка последней точки сохранения в игровом приложении
Примеры и источник
Вы можете найти основную реализацию этой функции в следующих файлах:
frameworks/base/services/core/java/com/android/server/policy/ShortcutManager.java frameworks/base/services/core/java/com/android/server/pm/ShortcutPackage.java frameworks/base/services/core/java/com/android/server/pm/ShortcutUser.java frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageInfo.java frameworks/base/services/core/java/com/android/server/pm/ShortcutLauncher.java frameworks/base/services/core/java/com/android/server/pm/ShortcutParser.java frameworks/base/services/core/java/com/android/server/pm/ShortcutService.java frameworks/base/services/core/java/com/android/server/pm/LauncherAppsService.java frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageItem.java frameworks/base/core/java/com/android/server/backup/ShortcutBackupHelper.java frameworks/base/core/java/android/content/pm/ShortcutManager.java frameworks/base/core/java/android/content/pm/ShortcutServiceInternal.java frameworks/base/core/java/android/content/pm/ShortcutInfo.java frameworks/base/core/java/android/content/pm/LauncherApps.java
Со следующими файлами, предоставляющими вспомогательные функции (называемые скрытыми API в ShortcutManager.java
):
packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
И, например, Android Open Source Project Launcher версии 3 поддерживает ярлыки:
packages/apps/Launcher3/
Наконец, просмотрите следующие файлы общедоступной документации Javadoc.
frameworks/base/core/java/android/content/pm/ShortcutManager.java frameworks/base/core/java/android/content/pm/ShortcutInfo.java frameworks/base/core/java/android/content/pm/LauncherApps.java
Реализация
AOSP Launcher3 уже поддерживает ярлыки. Если у партнера есть собственная программа запуска, эта программа запуска также должна поддерживать ярлыки.
- Когда пользователь выполняет определенный жест (например, длительное нажатие) на значке приложения, средство запуска должно отображать динамические ярлыки и ярлыки манифеста, связанные с каждым значком действия средства запуска.
Порядок сортировки ярлыков определяется в Javadoc ShorctutManager в разделе «Порядок отображения ярлыков». Например, сначала покажите ярлыки манифеста, а затем динамические ярлыки. Ярлыки отсортированы по рангу в порядке возрастания внутри каждой группы. - Пользователь должен иметь возможность перетаскивать каждый ярлык динамического/манифеста и «прикреплять» его к домашнему экрану.
- Закрепленные ярлыки должны быть скопированы и восстановлены. (Подробности см. в javadoc ShortcutManager)
- Выполнение «Встроенного ответа» в уведомлении должно внутренне вызывать ShortcutManager.onApplicationActive.
Кроме того, в некоторых приложениях Google Mobile Services (GMS) есть ярлыки. Средство запуска OEM должно отображать для них ярлыки и в идеале также поддерживать « закрепление » (или создание значка ярлыка).
См. источник Launcher3 для получения подробной информации о том, как взаимодействовать с платформой для вышеуказанных операций.
Проверка
Используйте следующие тесты Android Compatibility Test Suite (CTS), чтобы убедиться, что ваша версия функции (ShortcutManager и LauncherApps) работает должным образом:
cts/tests/tests/shortcutmanager/ cts/hostsidetests/shortcuts/
И найдите модульные тесты для реализации AOSP здесь:
frameworks/base/services/tests/servicestests/
Которая включает в себя:
src/com/android/server/pm/ShortcutManagerTest*.java
Вы также можете использовать тест CTS Verifier для диспетчера ярлыков:
cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java