Android 为什么我不能创建一个要求2个文本的自定义意图?

Android 为什么我不能创建一个要求2个文本的自定义意图?,android,actions-on-google,app-actions,Android,Actions On Google,App Actions,我有一个自定义的意图,从谷歌助手接收2个文本参数。但是助理不会启动我的应用程序。我只试过一个,它工作正常。问题是当我添加第二个文本参数时。我试过使用另一种数据类型,它可以工作。例如,如果我要一个文本和一个数字,效果很好。如果我要一篇课文和一段时间,它也会起作用。但是如果我要一条短信和一条短信,那就没有了。有什么需要帮忙的吗? 这是我在actions.xml文件中的意图: <action intentName="custom.actions.intent.MyName"

我有一个自定义的意图,从谷歌助手接收2个文本参数。但是助理不会启动我的应用程序。我只试过一个,它工作正常。问题是当我添加第二个文本参数时。我试过使用另一种数据类型,它可以工作。例如,如果我要一个文本和一个数字,效果很好。如果我要一篇课文和一段时间,它也会起作用。但是如果我要一条短信和一条短信,那就没有了。有什么需要帮忙的吗? 这是我在actions.xml文件中的意图:

<action intentName="custom.actions.intent.MyName" queryPatterns="@array/MyExampleStrings">
   <!-- Define parameters -->
   <parameter name="textA" type="https://schema.org/Text" />
   <parameter name="textB" type="https://schema.org/Text" />

   <!-- Define fulfillment -->
   <fulfillment urlTemplate="https://my.site.com/{?FirstText,SecondText}">
      <parameter-mapping intentParameter="textA" urlParameter="FirstText" />
      <parameter-mapping intentParameter="textB" urlParameter="SecondText" />
   </fulfillment>
</action>

MyExampleStrings类似于“使用$textB烘焙$textA”,例如“用番茄烘焙意大利面”

正如我之前所说,它使用不同的数据类型。在下一个示例中,我将第二个文本更改为一个数字,它可以工作:

<action intentName="custom.actions.intent.MyName" queryPatterns="@array/MyExampleStrings">
   <!-- Define parameters -->
   <parameter name="textA" type="https://schema.org/Text" />
   <parameter name="textB" type="https://schema.org/Number" /> <--NUMBER!

   <!-- Define fulfillment -->
   <fulfillment urlTemplate="https://my.site.com/{?FirstText,SecondText}">
      <parameter-mapping intentParameter="textA" urlParameter="FirstText" />
      <parameter-mapping intentParameter="textB" urlParameter="SecondText" />
   </fulfillment>
</action>


我刚刚尝试使用上面的例子来复制这个问题,但它在我这方面起到了预期的作用。这两个字段都包含在intent?数据字段中。所以,在我的例子中,它看起来是这样的:

https://todo.myapp.com/custom-intents?FirstText=Example123&SecondText=Example222
您能否进一步说明如何检索查询参数

作为一般建议,活动的onCreate函数中的日志语句应提供以下详细信息:

override fun onCreate(savedInstanceState: Bundle?) {
    Timber.tag(TAG).d("======= debugging data =========" + intent?.data)
}


我不熟悉谷歌的帮助,这不是一个解决方案,而是一个可能对你有用的解决方案,直到你找到一个更好的。为什么不发送一个文本并在其中添加一个特殊的分隔符呢?喜欢spaghetti@Tomatoes或者类似的东西,一旦你在你的活动中得到文本,就用这个字符分割并使用这些值。你是用真正的谷歌助手还是应用程序操作测试工具来检查它的?它只在真正的助手中失败。我现在不能给你一个日志,但它会在下一个注释中显示类似的内容:todo.myapp.com/custom intents?FirstText=Example123%20,其中%20Example222&SecondText=example222点击它。感谢您对助理的澄清。这是正确的,这是一个已知的问题,正在进行修复。我会把你的消息告诉你的,谢谢。你怎么知道这是一个已知的问题?它在哪里出版过?还没有。我为助理德夫雷尔团队工作。我会随时通知你的。