Ярлыки Android предоставляют пользователям быстрые способы выполнения действий или доступа к контенту в приложении. Ассистент может заранее предлагать пользователям динамические ярлыки вашего Android в нужное время, позволяя им легко находить и воспроизводить ваши голосовые функции.
Например, вы можете нажать ярлык для каждой заметки, которую пользователь создает в вашем приложении для создания заметок. Вы делаете динамические ссылки доступными для отображения на поверхностях Google, таких как Ассистент, добавляя в свой проект библиотеку Jetpack интеграции Google Shortcuts . Эта библиотека позволяет Помощнику использовать динамические ярлыки, которые вы нажимаете с помощью класса ShortcutManagerCompat
, который является оболочкой Jetpack для API ShortcutManager
.
Когда вы используете библиотеку интеграции ярлыков Google в своем приложении, динамические ярлыки, которые вы отправляете в Google, видны пользователям в виде голосовых предложений в приложении Assistant. Вы можете отправить неограниченное количество динамических ярлыков в Ассистент, используя метод pushDynamicShortcut()
библиотеки ShortcutManagerCompat
.
Настройте свой проект разработки
Для добавления функций динамических ярлыков в ваше приложение требуется библиотека интеграции Google Shortcuts, которая представляет собой библиотеку Android Jetpack. В этом разделе описывается, как настроить проект разработки приложения для включения этой библиотеки.
Чтобы добавить эту библиотеку Jetpack и настроить свой проект, выполните следующие действия:
Обновите файл
gradle.properties
для работы с библиотеками Jetpack:gradle.properties
android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true
Добавьте зависимости библиотеки Jetpack в свой
build.gradle
:приложение/build.gradle
dependencies { implementation "androidx.core:core:1.6.0" implementation "androidx.core:core-google-shortcuts:1.0.1" ... }
В предыдущем примере кода вы указываете две библиотеки Jetpack в качестве зависимостей. Библиотека
androidx.core:core:1.6.0
содержит классShortcutManagerCompat
, который вы используете для отправки динамических ярлыков в Google.androidx.core:core-google-shortcuts:1.0.1
— это библиотека интеграции Google Shortcuts. Эта библиотека не содержит API для разработчиков. Добавляя его в качестве зависимости, вы позволяете Ассистенту использовать динамические ярлыки, которые вы нажимаете с помощью классаShortcutManagerCompat
.
Нажмите динамические ярлыки
Чтобы отправить динамические ярлыки, которые могут отображаться в Ассистенте, вы сначала создаете ярлык с помощью класса ShortcutInfoCompat.Builder()
.
Затем вы нажимаете ярлык с помощью метода ShortcutManagerCompat.pushDynamicShortcut()
. Ярлыки активируются всякий раз, когда пользователь выполняет соответствующее действие в вашем приложении. Следующий пример кода запускает ярлык каждый раз, когда пользователь создает список в приложении «Заметки и списки».
ПримерОрдерактивности
Котлин
// Define the dynamic shortcut for an item var intent = Intent(context, DisplayOrderActivity::class.java) intent.action = Intent.ACTION_VIEW var shortcutInfo = ShortcutInfoCompat.Builder(context, id) .setShortLabel("Running") .setLongLabel("Start running") .addCapabilityBinding( "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List") ) .setIntent(intent) // Push the shortcut .build() // Push the shortcut ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo)
Ява
// Define the dynamic shortcut for an item Intent intent = new Intent(context, DisplayOrderActivity.class); intent.setAction(Intent.ACTION_VIEW); ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id) .setShortLabel("Running") .setLongLabel("Start running") .addCapabilityBinding( "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List")) .setIntent(intent) .build(); // Push the shortcut ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
id
, указанный в методе ShortcutInfoCompat.Builder
в предыдущем примере кода, определяет shortcutId
результирующего объекта ярлыка. Этот id
должен быть уникальным строковым литералом. Подробности см. в документации по ярлыкам Android .
В предыдущем примере метод addCapabilityBinding
привязывает динамический ярлык к capability
с тем же android:name
определенным в shortcuts.xml
. Этот метод позволяет связать ярлык с параметром встроенного семантического намерения (BII).
Динамические ярлыки иногда запускаются без какой-либо конкретной связи с параметрами BII. При вызове пользователя Assistant запускает intent
, определенное в ярлыке, для выполнения действия. В следующем примере показан динамический ярлык без привязки параметров:
Котлин
var intent: Intent = Intent(context, DisplayOrderActivity::class.java) intent.setPackage(this, "com.sample.app") intent.setAction(Intent.ACTION_VIEW) var shortcutInfo: ShortcutInfoCompat = ShortcutInfoCompat.Builder(context, id) .setShortLabel("Create a list") .setLongLabel("Create a list") .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST") .setIntent(intent) .build() ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
Ява
Intent intent = new Intent(context, DisplayOrderActivity.class); intent.setPackage(this, "com.sample.app"); intent.setAction(Intent.ACTION_VIEW); ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(context, id) .setShortLabel("Create a list") .setLongLabel("Create a list") .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST") .setIntent(intent) .build(); ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
Проверьте динамические сочетания клавиш с помощью Ассистента
Когда Google Assistant успешно получает динамический ярлык из вашего приложения, этот ярлык может отображаться в качестве предложения голосового ярлыка в приложении Assistant Android. Приложение «Ассистент» предлагает самые последние ярлыки, использованные вашим приложением.
Чтобы протестировать динамические ярлыки с помощью Ассистента, выполните следующие действия:
- Создайте предварительный просмотр действий приложения и подготовьте тестовое устройство или эмулятор для тестирования действий, выполнив те же требования к настройке, что и для плагина Google Assistant .
- Откройте свое приложение и определите динамический ярлык для отправки. Затем выполните действие. Например, если вы нажимаете ярлык всякий раз, когда в приложении для создания заметок создается заметка, создайте новую заметку.
- Откройте «Ярлыки» в приложении «Настройки Ассистента» на вашем устройстве. Динамический ярлык появится в списке вашего приложения.