我似乎无法向 Cortana 添加命令

I can't seem to add commands to Cortana

我最近安装了 Windows 10,作为一名程序员,我在想也许我可以对 Cortana 进行一些个性化设置。 我已经完成了 mdsn 告诉我的事情,并且我尝试创建一个尽可能简单的测试项目,我可以从中进行迭代。 我查看了很多主题,但找不到我的问题。 我觉得奇怪的是,我可以在 Cortana 中找到我的命令,但 Cortana 似乎不会在我的应用程序中触发它们。它只是带来 Bing 搜索。 :(

这是我的命令被注册的证据。

代码如下:

protected async override void OnLaunched(LaunchActivatedEventArgs e)
{
    ---------------------------

    try
    {
        // Install the main VCD. 
        StorageFile vcdStorageFile =
         await Package.Current.InstalledLocation.GetFileAsync(
           @"TestCommands.xml");

        await Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager.
         InstallCommandDefinitionsFromStorageFileAsync(vcdStorageFile);
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine("Installing Voice Commands Failed: " + ex.ToString());
    }
}

protected override void OnActivated(IActivatedEventArgs e)
{
    // Handle when app is launched by Cortana
    if (e.Kind == ActivationKind.VoiceCommand)
    {
        System.Diagnostics.Debug.WriteLine("It worked!!!");
    }
    base.OnActivated(e);
}

和xml:

<?xml version="1.0" encoding="utf-8" ?>
<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.2">
    <CommandSet xml:lang="en-us" Name="EatEverydayCommandSet_en-us">
        <Example>Eat everyday</Example>

        <Command Name="Eat_Every_Day">
            <Example>Eat everyday</Example>
            <ListenFor>Eat everyday</ListenFor>
            <Feedback>Eating</Feedback>
            <Navigate />
        </Command>
    </CommandSet>
</VoiceCommands>

我也看了,我的地区配置为美国,语言配置为英语。

您发布的代码是正确的,使用您的代码我可以从 Cortana 启动应用程序。 Cortana 无法启动您的应用程序的一个可能原因可能是您没有在 VCD 文件中设置 CommandPrefixAppName 元素。

尽管这两个是 CommandSet 元素的可选子元素。但是他们为应用程序指定了一个用户友好的名称,用户在发出语音命令时可以说出该名称。这对于名称较长或难以发音的应用程序很有用。如果我们不设置 CommandPrefixAppName 元素,则需要使用应用程序名称和语音命令才能在 Cortana 中执行。对于您的情况,根据您发布的图片,完整的命令应该是 "EatEveryday, Eat everyday".

EatEveryday 不是英文单词。 Cortana 很难识别它。在大多数情况下,您的命令将被识别为 "eat everyday eat everyday"。由于Cortana中没有注册名为"eat"或"eat everyday"的应用程序,Cortana会使用Bing Search进行搜索。

要测试您注册的语音命令,您可以尝试在 Cortana 中键入 "EatEveryday Eat everyday",如下所示:

这应该能够启动您的应用程序。为了获得更好的用户体验,我建议您在 VCD 文件中设置 CommandPrefixAppName 元素。例如,使用以下 VCD 文件。

<?xml version="1.0" encoding="utf-8" ?>
<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.2">
  <CommandSet xml:lang="en-us" Name="EatEverydayCommandSet_en-us">
    <CommandPrefix>Eat Application</CommandPrefix>
    <Example>Eat everyday</Example>

    <Command Name="Eat_Every_Day">
      <Example>Eat everyday</Example>
      <ListenFor>Eat everyday</ListenFor>
      <Feedback>Eating</Feedback>
      <Navigate />
    </Command>
  </CommandSet>
</VoiceCommands>

然后使用命令 "eat application eat everyday" 启动应用程序。