Google Assistant Voice Control Integration in Android App
User says "Hey Google, open my order in [App Name]"—and app opens to the right screen. Or "add milk to my shopping list in [App]"—and app executes action without UI interaction. These are two different integration mechanisms with Google Assistant, both require separate implementation.
Two Integration Ways
Built-in intents (BII)—Google provides predefined action types: actions.intent.ORDER_MENU_ITEM, actions.intent.CREATE_TAXI_RESERVATION, actions.intent.GET_NEWS_ARTICLE and 60+ more. App registers support for specific BII via shortcuts.xml, Assistant understands natural language and maps it to needed intent.
Conversational Actions (Dialogflow)—full conversational agent for complex multi-step scenarios. App doesn't open—Assistant conducts dialogue on behalf of app. Separate ecosystem with Dialogflow CX/ES, webhook integration, and own deployment process. For most mobile apps this path is overkill.
We focus on App Actions with BII—main integration for native Android apps.
How App Actions Work
In res/xml/shortcuts.xml capabilities are declared—which BII app supports and which Intent or deeplink to launch:
<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>
File is registered in manifest via <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />.
Assistant extracts parameters from voice command via NLU—for example, pickup location from "book taxi from Main Street"—and passes them to Intent as extras. App gets Intent in Activity and acts on parameters.
What Complicates Implementation
Choosing right BII. Google provides built-in intent list, divided by category: fitness, food ordering, transportation, messaging, media. If app functionality doesn't match ready BII—only Custom Intents remain (App Actions, limited set via Actions Console, requires Google approval).
Parameter mapping. BII pass parameters in structured format (schema.org types). taxiReservation.pickupLocation.name—string value. But what if user spoke inaccurately and NLU returned wrong address? App must handle it—show confirmation screen or ask for clarification.
Testing. Google provides gactions CLI and Google Assistant plugin for Android Studio. gactions test --action-package ... --invocation-name "..."—simulate command. On real device Assistant must be configured to same Google Play Console account. Without this, testing on physical devices impossible until Production release.
Android versions. App Actions work on Android 5.0+, but fully—with Google app 6.13+. Not all users have current version. Fallback behavior without support must be designed.
In-app shortcuts. Assistant also shows shortcuts from shortcuts.xml in widget and search. Static shortcuts (declared in XML) and dynamic (via ShortcutManager.pushDynamicShortcut())—different mechanisms, can complement App Actions.
Google Assistant integration via App Actions with 2–3 BII, testing, and Actions Console publishing: 3–5 days. Cost is calculated individually after app functionality analysis.







