Версия 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 (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