我正在尝试在命令行样式中使用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历史记录,重新启动计算机并再次安装应用 帮助
答案 0 :(得分:0)
我可以从您的代码中看到的唯一问题是您在PhraseTopic
中使用了错误的标签。在Command
,您使用&#34;参数&#34; 作为标签。因此,在PhraseTopic
中,Label
也应该是&#34;参数&#34;不是&#34;目的地&#34;。
<PhraseTopic Label="parameter" />
在此之后,您的命令应该能够工作。例如,使用Cortana voice command sample,一旦我们将Command
和PhraseTopic
添加到其VCD文件中,我们就可以通过以下内容启动与Cortana的应用程序:
您可能需要检查是否正确识别 AppName 。例如,在这里,工作语音命令必须以&#34;冒险作品&#34; 开头。如果您的演讲被识别为&#34; AdventureWorks这是一个测试&#34; ,那么它将无法正常工作。
您可能已经知道,测试您已注册的语音命令的一种简单方法是在Cortana搜索框中键入命令,如下所示:
通过以上输入,应该没有问题。