1

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:

  1. 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>
    
  2. 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>
    
  3. 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:

  1. 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.

  1. 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.

  1. 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:

  1. Is actions.intent.OPEN_APP_FEATURE fully compatible with the new Gemini assistant on Android, or are there specific requirements for Gemini?

  2. 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?

  3. 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

asked Dec 25, 2025 at 15:11
1
  • Similar, unanswered question Commented Dec 25, 2025 at 19:16

1 Answer 1

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.xml capabilities.
  • 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.
answered Dec 28, 2025 at 11:40
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.