如何在Android平台通过DialogFlow集成Custom Intent Actions
Google Assistant 触发*自定义Intent(Custom Intent)*后自有应用执行对应操作的实现流程
以下是完整的落地步骤:
1. 配置应用端的意图过滤器
在你自有App的AndroidManifest.xml文件中,给需要响应自定义意图的Activity组件添加对应的intent-filter,配置的action值需要和后续在Actions Console中定义的自定义意图action完全一致。
示例配置代码:
<activity android:name=".YourTargetActivity" android:exported="true"> <!-- Android12及以上系统必须加该属性 --> <intent-filter> <action android:name="com.yourdomain.yourapp.CUSTOM_ACTION_YOUR_DEFINE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
2. 应用内编写意图接收和逻辑处理代码
在你上一步配置的目标Activity中,重写onCreate或者onNewIntent方法,校验意图来源、读取携带的参数,执行对应的自定义业务逻辑即可。
示例处理代码(Kotlin):
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) intent?.takeIf { it.action == "com.yourdomain.yourapp.CUSTOM_ACTION_YOUR_DEFINE" }?.let { validIntent -> // 读取自定义意图携带的参数 val opType = validIntent.getStringExtra("your_custom_param") // 执行对应操作 when(opType) { "open_vip_page" -> jumpToVipPage() "start_countdown" -> startCountdownTask() else -> handleUnsupportedOperation() } } }
3. 配置Google Actions平台的自定义意图
在Google Actions Console创建对应项目,添加自定义意图模块:
- 填写和你应用内完全一致的intent action值
- 配置用户触发该意图的语音话术模板
- 配置需要传递给应用的参数映射规则
- 绑定你自有应用的包名、签名信息,完成应用关联
4. 测试验证流程
- 先在Actions Console的测试模拟器输入触发话术,确认意图匹配、参数传递正常
- 将开发完成的测试包安装到登录了同账号Google账号的测试设备中,直接对Google Assistant说出触发话术,验证应用是否正常唤起、对应逻辑是否执行正确
注意事项
- 自定义意图的action命名建议使用反向域名格式,避免和其他应用的意图冲突
- 接收意图时需要做参数合法性校验,避免非法触发导致应用崩溃
- 若应用需要适配不同Android版本,需要额外处理动态权限、 intent 可见性等兼容问题
内容的提问来源于stack exchange,提问作者Zubair Akber
相关产品推荐
相关产品推荐

