【问题标题】:Run UWP app with Cortana with one parameter使用一个参数运行带有 Cortana 的 UWP 应用
【发布时间】:2017-06-17 05:06:54
【问题描述】:

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

(按开始写作:)

MyApp 参数_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>

而“命令”改为:

MyApp 字参数_I_want_to_pass_to_my_app

这是一个无意义的词......

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

___编辑___

正如 Jay Zuo - MSFT 所示 - 可以仅使用应用名称将参数传递给应用。 问题出在 Cortana 和应用程序调试之间。每次构建应用后都不会刷新命令列表。

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

【问题讨论】:

    标签: uwp cortana


    【解决方案1】:

    我从您的代码中看到的唯一问题是您在PhraseTopic 中使用了错误的标签。在您的 Command 中,您使用 "parameter" 作为您的 Label。所以在PhraseTopic 中,Label 也应该是“参数”而不是“目标”。

    <PhraseTopic Label="parameter" />
    

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

    “冒险作品这是一个测试”

    您可能需要检查 AppName 是否被正确识别。例如,在这里,有效的语音命令必须以 “adventure works” 开头。如果您的口语被识别为“AdventureWorks 这是一个测试”,那么它就不起作用了。

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

    有了上面的输入,应该没有问题了。

    【讨论】:

    • “destination”只是用“参数”制作问题样本后的残留物。在我的应用程序中是正确的。好的一点是它应该工作。但在我的情况下它不起作用。 Cortana 在更改 voiceCommand.xml 时不知何故感到困惑......有什么办法可以在 Cortana 中重新刷新语音命令?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多