Інтеграція Google Assistant для голосового керування Android-додатком
Користувач говорить «Окей Гугл, відкрий мій замовлення в [Назва додатку]» — і додаток відкривається на потрібному екрані. Або «додай молоко до списку покупок в [Додаток]» — і додаток виконує дію без UI-взаємодії. Це два різні механізми інтеграції з Google Assistant, обидва вимагають окремої реалізації.
Два способи інтеграції
Built-in intents (BII) — Google надає попередньо визначені типи дій: actions.intent.ORDER_MENU_ITEM, actions.intent.CREATE_TAXI_RESERVATION, actions.intent.GET_NEWS_ARTICLE та 60+ варіантів. Додаток реєструє підтримку конкретних BII через shortcuts.xml, Assistant розуміє природну мову та маппить її на потрібний intent.
Conversational Actions (Dialogflow) — повнофункціональний діалоговий агент для складних багатокрокових сценаріїв. Додаток не відкривається — Assistant ведетьалог від імені додатку. Це окрема екосистема з Dialogflow CX/ES, webhook-інтеграцією та власним deployment-процесом. Для більшості мобільних додатків цей шлях надлишковий.
Ми фокусуємося на App Actions з BII — це основна інтеграція для нативних Android-додатків.
Як працюють App Actions
У res/xml/shortcuts.xml оголошуються capabilities — які BII підтримує додаток та який Intent або deeplink запускати:
<capability android:name="actions.intent.CREATE_TAXI_RESERVATION">
<intent
android:targetPackage="com.example.app"
android:targetClass="com.example.app.BookingActivity">
<parameter
android:name="taxiReservation.pickupLocation.name"
android:key="pickup_location" />
</intent>
</capability>
Файл реєструється в маніфесті через <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />.
Assistant витягує параметри з голосової команди через NLU — наприклад, місце відправлення з фрази «закажи таксі від Хрещатика» — та передає їх в Intent як extras. Додаток отримує Intent в Activity та діє за параметрами.
Що ускладнює реалізацію
Вибір правильного BII. Google надає список вбудованих интентів, розділених за категоріями: fitness, food ordering, transportation, messaging, media. Якщо функціонал додатку не збігається з готовими BII — залишається лише Custom Intents (App Actions, обмежений набір через Actions Console, вимагає одобрення Google).
Parameter mapping. BII передають параметри в структурованому форматі (schema.org-типи). taxiReservation.pickupLocation.name — строкове значення. Але що якщо користувач сказав неточно та NLU повернув невірну адресу? Додаток повинен це обробляти — показувати екран підтвердження або просити уточнити.
Тестування. Google надає gactions CLI та плагін Google Assistant для Android Studio. gactions test --action-package ... --invocation-name "..."— симуляція команди. На реальному пристрої Assistant повинен бути налаштований на той же акаунт Google Play Console. Без цього тестування на фізичних пристроях неможливе до публікації в Production.
Версії Android. App Actions працюють на Android 5.0+, але повнофункціонально — з Google app 6.13+. Не всі користувачі мають актуальну версію. Fallback-поведінка при відсутності підтримки потребує проектування.
In-app shortcuts. Assistant також показує shortcuts з shortcuts.xml у вигляді віджета та в пошуку. Статичні shortcuts (оголошені в XML) та динамічні (через ShortcutManager.pushDynamicShortcut()) — різні механізми, можуть доповнювати App Actions.
Інтеграція Google Assistant через App Actions з 2–3 BII, тестуванням та публікацією в Actions Console: 3–5 днів. Вартість розраховується індивідуально після аналізу функціоналу додатку.







