使用带有一个参数

时间:2017-06-15 17:11:20

标签: uwp cortana

我正在尝试在命令行样式中使用Cortana / Start:

(按开始写作:)

  

MyApp parameter_I_want_to_pass_to_my_app

这是我的voiceCommands.xml文件的一部分:

<Command Name="mycommand">
  <Example> something </Example>
  <ListenFor RequireAppName="BeforePhrase">{parameter}</ListenFor>
  <Feedback> Doing something with: {parameter} </Feedback>
  <Navigate />
</Command>

parameter在同一个xml:

中指定
 <PhraseTopic Label="parameter" />

它不起作用。文档中的Here是对PhaseTopic的一些限制,并在阶段开始时使用它。但这些限制仅在RequireAppName"AfterPhrase""ExplicitlySpecified"时才会出现(在我的示例中有BeforePhrase

添加一个单词时,一切正常:

<ListenFor RequireAppName="BeforePhrase">word {parameter}</ListenFor>

和“command”更改为:

  

MyApp字参数_I_want_to_pass_to_my_app

这是毫无意义的一句话......

所以问题是如何使用Cortana将参数传递给我的应用程序?

___ EDIT ___

正如Jay Zuo - MSFT所示 - 可以通过app name将参数传递给app。 问题介于Cortana和app debuging之间。每次构建应用程序后,都不会刷新命令列表。

  

卸载应用,清除Cortana历史记录,重新启动计算机并再次安装应用   帮助

1 个答案:

答案 0 :(得分:0)

我可以从您的代码中看到的唯一问题是您在PhraseTopic中使用了错误的标签。在Command,您使用&#34;参数&#34; 作为标签。因此,在PhraseTopic中,Label也应该是&#34;参数&#34;不是&#34;目的地&#34;。

<PhraseTopic Label="parameter" />

在此之后,您的命令应该能够工作。例如,使用Cortana voice command sample,一旦我们将CommandPhraseTopic添加到其VCD文件中,我们就可以通过以下内容启动与Cortana的应用程序:

&#34;冒险作品这是一个测试&#34;
enter image description here

您可能需要检查是否正确识别 AppName 。例如,在这里,工作语音命令必须以&#34;冒险作品&#34; 开头。如果您的演讲被识别为&#34; AdventureWorks这是一个测试&#34; ,那么它将无法正常工作。

您可能已经知道,测试您已注册的语音命令的一种简单方法是在Cortana搜索框中键入命令,如下所示:

enter image description here

通过以上输入,应该没有问题。