Розробка App Actions для Google Assistant
App Actions — механізм, через який Android-додаток реєструє підтримувані голосові команди в екосистемі Google Assistant. Користувач говорить «почни тренування в [Додаток]» — Assistant запускає потрібний екран безпосередньо, без ручного пошуку додатку. Розробка App Actions означає створення capabilities-конфігурації, маппінг параметрів NLU та обробку интентів всередину додатку.
Архітектура App Actions
Центральний файл — shortcuts.xml в res/xml/. Містить <capability> елементи, кожен описує один підтримуваний Built-in Intent (BII). Файл пов'язується з маніфестом та завантажується в Actions Console при публікації.
Структура capability:
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.START_EXERCISE">
<intent
android:targetPackage="com.example.fitness"
android:targetClass="com.example.fitness.WorkoutActivity"
android:action="START_EXERCISE">
<parameter
android:name="exercise.name"
android:key="exercise_type"
android:mimeType="text/plain" />
</intent>
<slice-presentation
android:shortcutId="start_running"
android:title="Почати пробіжку" />
</capability>
</shortcuts>
exercise.name — параметр BII, який NLU-движок Google витягує з голосової команди. Якщо користувач сказав «почни пробіжку», значення буде running. Activity отримує його через intent.getStringExtra("exercise_type").
Типи fulfillment
Android Intent: Activity запускається безпосередньо через Intent. Найпростіший шлях, підходить для більшості випадків.
Deep link: замість класу Activity вказується URL, який обробляється через App Links або кастомну URI-схему. Гнучкіше — можна використовувати існуючу deep link інфраструктуру.
In-app UI через Slices: застарілий підхід, Android Slices deprecated з Android 11. Не використовувати в нових проектах.
Inline Inventory
Для BII, які приймають конкретні значення з закритого набору (наприклад, список доріжок, список категорій тренувань), можна оголосити <shortcut> з прив'язкою до capability. Assistant пропонує ці значення користувачу як підказки та підтверджує вибір перед запуском:
<shortcut android:shortcutId="yoga_workout" android:shortcutShortLabel="@string/yoga">
<capability-binding android:key="actions.intent.START_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/yoga_synonyms" />
</capability-binding>
</shortcut>
yoga_synonyms — string-array з варіантами: «йога», «yoga», «розтяжка». NLU матчить їх до yoga_workout shortcut.
Actions Console та публікація
App Actions вимагають реєстрації в Google Actions Console (console.actions.google.com) — окремий інструмент від Google Play Console. Там же відбувається перевірка capabilities-конфігурації, тестування з симулятором та публікація.
Для тестування без публікації в Production: gactions CLI + плагін Google Assistant в Android Studio 4.1+. Команда gactions deploy preview заливає конфігурацію в чернетку, після чого Assistant на тестовому пристрої (з тим же акаунтом) обробляє команди.
Частий проблема: Actions Console вимагає, щоб додаток був опублікований в Google Play (хоча б Internal track). Розробка без опублікованого додатку — лише через тестовий режим з обмеженнями.
Обробка в додатку
Activity, оголошена як targetClass, зобов'язана коректно обробляти Intent у всіх launch-режимах: холодний старт, повернення з фону, перехід від іншого екрану. Параметри, які NLU не смогу витягти, приходять як null — додаток повинен показати екран вибору замість краху.
Аналітика: кожен App Actions-запуск потрібно логувати з параметрами для розуміння, які BII реально використовуються. Firebase Analytics або Amplitude, кастомне событие assistant_app_action з параметром bii_name.
Розробка App Actions з 2–4 BII, inline inventory, тестуванням через Actions Console та публікацією: 3–5 днів. Вартість розраховується індивідуально.







