Ярлыки приложений

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