You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MyAndroidApp关联Google Assistant实现深度链接跳转指定内容

实现MyAndroidApp与Google Assistant关联,跳转应用内特定内容

要实现你说的「在MyAndroidApp中打开xyz」这类语音指令跳转,主要分两大块:配置应用的Deep Link/Intent(让应用能接收外部跳转请求),以及在Google Actions Console中定义语音触发的Action(让Assistant理解指令并触发跳转)。下面一步步来:

第一步:配置应用的Deep Link(或显式Intent)

首先得确保你的应用已经支持Deep Link,这样Assistant才能通过链接直接打开指定内容。

1. 在AndroidManifest.xml中添加Intent Filter

找到你要跳转的目标Activity,添加如下intent-filter:

<activity
    android:name=".xyz.XyzDetailActivity">
    <!-- 基础的Deep Link配置 -->
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- 这里定义你的Deep Link Scheme,比如myapp://content/xyz -->
        <data
            android:scheme="myapp"
            android:host="content"
            android:pathPattern="/.*" />
    </intent-filter>
    <!-- 如果要用显式Intent,也可以添加自定义Action -->
    <intent-filter>
        <action android:name="com.mycompany.myandroidapp.ACTION_OPEN_XYZ" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

这样,当外部(比如Assistant)发送符合这个scheme的链接,或者触发自定义Action的Intent时,你的Activity就能接收并处理。

2. 在Activity中处理跳转参数

在目标Activity的onCreate或onNewIntent方法里,获取传递过来的参数(比如xyz的具体内容ID):

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    handleIntent(intent)
}

override fun onNewIntent(intent: Intent?) {
    super.onNewIntent(intent)
    intent?.let { handleIntent(it) }
}

private fun handleIntent(intent: Intent) {
    // 处理Deep Link的情况
    intent.data?.let { uri ->
        val contentId = uri.lastPathSegment // 比如从myapp://content/123拿到123
        // 根据contentId加载对应的xyz内容
        loadContent(contentId)
    }
    // 处理自定义Action的情况
    if (intent.action == "com.mycompany.myandroidapp.ACTION_OPEN_XYZ") {
        val contentId = intent.getStringExtra("CONTENT_ID")
        contentId?.let { loadContent(it) }
    }
}

第二步:创建Google Action,关联到应用

接下来要让Google Assistant理解用户的语音指令,需要在Google Actions Console中创建对应的Action。

1. 登录Google Actions Console

登录Google Actions Console,选择「创建项目」,关联你的Google账号,项目名称可以和应用一致。

2. 选择「App Actions」类型

因为我们要直接跳转已有的Android应用,所以选择「App Actions」(这是专门用于关联Android应用的Action类型)。

3. 关联你的Android应用

在App Actions配置页面,点击「关联应用」,输入你的应用的包名(比如com.mycompany.myandroidapp),确保这个应用已经在Google Play Console中存在(哪怕是测试版也可以)。

4. 定义触发短语和参数

接下来要定义用户的语音指令,比如「在MyAndroidApp中打开{contentName}」或者「在MyAndroidApp中显示{contentId}」。

  • 首先创建一个Invocation,设置应用的名称(比如「MyAndroidApp」),这样Assistant能识别用户提到的应用名。
  • 然后创建一个Action,选择「Deep Link」或者「Intent」作为触发方式:
    • 如果用Deep Link:填写你的Deep Link模板,比如myapp://content/{contentId},然后定义参数contentId,设置参数的类型(比如「文本」或者「数字」),并添加对应的训练短语,比如:
      • "打开MyAndroidApp里的{contentId}"
      • "在MyAndroidApp中显示{contentId}"
    • 如果用显式Intent:选择你的应用包名和自定义Action(com.mycompany.myandroidapp.ACTION_OPEN_XYZ),然后添加参数CONTENT_ID,同样设置参数类型和训练短语。

5. 测试Action

配置完成后,点击「测试」,使用Google Assistant在你的测试设备上(需要登录同一个Google账号,并且安装了你的应用)说出测试短语,比如「在MyAndroidApp中打开xyz123」,看是否能跳转到应用内对应的内容。

第三步:发布(可选,用于正式环境)

如果测试没问题,就可以提交你的App Actions进行审核,审核通过后,所有安装了你的应用的用户都能使用这些语音指令。

注意事项

  • 确保你的Deep Link在应用内能正常工作,先通过adb命令测试:adb shell am start -a android.intent.action.VIEW -d "myapp://content/xyz123" com.mycompany.myandroidapp
  • 训练短语要尽量覆盖用户可能的表达方式,比如「打开MyAndroidApp的xyz」「用MyAndroidApp看xyz」等,这样Assistant的识别准确率更高。
  • 如果你的内容有特定的分类(比如电影、文章),可以使用Google预定义的参数类型(比如「Movie」「Article」),提升识别效果。

内容的提问来源于stack exchange,提问作者Preetham Ivan D'Souza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:19:00