如何仅使用目的地设置 Cortana Command ListenFor?

How to set Cortana Command ListenFor just with a destination?

我目前正在我的应用程序中集成 Cortana,因为我正在尝试做如下的事情

<?xml version="1.0" encoding="utf-8" ?>
<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.2">

  <CommandSet xml:lang="en-us" Name="NearbyCommandSet_en-us">
    <AppName> Nearby </AppName>
    <Example> Nearby sign out from the app</Example>

    <Command Name="actionCommands">
      <Example> sign out from the app </Example>
      <ListenFor RequireAppName="BeforeOrAfterPhrase"> {destination} </ListenFor>
      <Feedback> Signing Out from the app</Feedback>
      <Navigate />
    </Command> 

    <PhraseList Label="destination">
      <Item>Sign Out</Item>
    </PhraseList>
  </CommandSet>

</VoiceCommands>

我有一个命令注销,我想对 Cortana "Nearby Sign Out" 说,这不起作用,但是当我像下面那样更改 ListenFor 时它起作用了。

<ListenFor RequireAppName="BeforeOrAfterPhrase"> {destination} from app</ListenFor>

当我只提到命令 {destination} 时,它不起作用。我的要求是只说 "Nearby Sign Out"

如何实现,是否可以只在 ListenFor 中使用一个命令来实现?

谢谢。

在您的 PhraseList 中,标签设置为 "destination",将其更改为 "action"。此外,如果您想要一个可选术语,请使用方括号,如下所示。

<ListenFor RequireAppName="BeforeOrAfterPhrase">{destination} [from app]</ListenFor>

如果您仍然遇到同样的问题,请告诉我。

编辑。如果您需要两条指令,您也可以尝试在同一命令中添加两条指令。

<ListenFor RequireAppName="BeforePhrase">{destination} [from app]</ListenFor>
<ListenFor RequireAppName="AfterPhrase">{destination} [from app]</ListenFor>