I am migrating my Android app from deprecated custom intents to the Built-In Intent (BII) actions.intent.OPEN_APP_FEATURE to support Google Assistant and Gemini.
I have configured shortcuts.xml with an inline inventory for "start_reading" and "stop_reading" features, mapped to an Activity.
The Problem: The deep link handling logic works perfectly when triggered via ADB, but voice commands to Google Assistant / Gemini (e.g., "Hey Google, start reading on Notifiche TTS") are not triggering the action. The Assistant simply performs a web search or opens the app without the parameter.
I am unable to use the "App Actions Test Tool" plugin in Android Studio due to IDE environment restrictions, so I am relying on manual verification and internal testing tracks.
My Setup:
shortcuts.xml I am using OPEN_APP_FEATURE with parameter-binding pointing to string arrays for synonyms.
<?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <capability android:name="actions.intent.OPEN_APP_FEATURE"> <intent android:action="android.intent.action.VIEW" android:targetPackage="com.giuliohome.notifichetts" android:targetClass="com.giuliohome.notifichetts.MainActivity"> <parameter android:name="feature" android:key="featureParam" /> </intent> </capability> <shortcut android:shortcutId="start_reading" android:enabled="true" android:icon="@mipmap/ic_launcher" android:shortcutShortLabel="@string/shortcut_start_reading_short" android:shortcutLongLabel="@string/shortcut_start_reading_long"> <capability-binding android:key="actions.intent.OPEN_APP_FEATURE"> <parameter-binding android:key="feature" android:value="@array/start_reading_patterns"/> </capability-binding> <intent android:action="android.intent.action.VIEW" android:targetPackage="com.giuliohome.notifichetts" android:targetClass="com.giuliohome.notifichetts.MainActivity" android:data="notifichetts://control?feature=start_reading" /> </shortcut> <!-- Similar shortcut for stop_reading --> </shortcuts>AndroidManifest..xml
<activity android:name=".MainActivity" android:exported="true"> <!-- App Actions Intent Filter --> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="control" android:scheme="notifichetts" /> </intent-filter> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> </activity>values-it/arrays.xml (Italian Locale)
<resources> <string-array name="start_reading_patterns"> <item>Avvia lettura</item> <item>Abilita lettura</item> <item>Attiva lettura notifiche</item> </string-array> </resources>
What I have tried:
- ADB Validation: Verified the deep link works. The app opens and handles the feature parameter correctly.
adb shell am start -W -a android.intent.action.VIEW -d "notifichetts://control?feature=start_reading" com.giuliohome.notifichetts
Result: Success, app opens and toggles the feature.
- Static Shortcut Validation: Verified via Android Launcher.
I long-pressed the app icon on the home screen.
The "Start reading" and "Stop reading" shortcuts appear in the menu.
Tapping them successfully launches the app and executes the action.
Result: Success. This confirms shortcuts.xml is valid and registered with the OS.
- Deployment: I have uploaded the App Bundle (AAB) to the Open Testing track on Google Play Console and downloaded it to the device (eventually I also tried promoting it to Production).
Questions:
Is
actions.intent.OPEN_APP_FEATUREfully compatible with the new Gemini assistant on Android, or are there specific requirements for Gemini?Without the App Actions Test Tool plugin, is deploying to Open Testing or Production enough to force the Assistant to re-index the shortcuts? How long does this propagation usually take?
Are there any known issues with Inline Inventory validation for Italian locale (values-it)?
Source Code: The full source code is available here: https://gitlab.com/giuliohome/NotificheTTS
-
Similar, unanswered questionGiulio– Giulio2025年12月25日 19:16:10 +00:00Commented Dec 25, 2025 at 19:16
1 Answer 1
App Actions are effectively deprecated/broken by Gemini
After extensive testing, I’ve found that the official documentation for App Actions (Built-In Intents) is outdated.
The Reality:
- Gemini fails to pass parameters: While Gemini can still "Open [App Name]," it no longer passes parameters or specific features (like
OPEN_APP_FEATURE) to the intent. It simply opens the main activity and ignores the specific command/extra. - The "Switch Back" is broken: Even if you revert from Gemini to Google Assistant in the Android settings, App Actions remain non-functional. The system seems to stay in a state where voice intents are no longer mapped to
shortcuts.xmlcapabilities. - ADB still works: The intents work perfectly via adb shell am start ..., proving the issue is with the Gemini/Assistant NLU layer, not the app's code or manifest
Workarounds:
- Android Voice Access: This is currently the only way to achieve voice-controlled navigation or service toggles. It uses the accessibility layer to interact with UI elements directly, bypassing the broken intent system entirely.
- Native Gemini Alternative: In the specific context of my app (a notification reader), users can ask Gemini: "Read my notifications." If the Google app is granted the necessary permissions, Gemini will read the notifications natively.
- Ad-hoc app: A dedicated app/service is more efficient because it can read all notifications without having to ask Gemini every time, but currently, the possibility to start and stop the service requires a manual tap.
Comments
Explore related questions
See similar questions with these tags.