6

我有一个 Cortana XML 文件,我需要输入一个数字。我应该怎么做才能确保我可以将其转换为数字?

<Command Name="AddMoney">
  <Example> Add 10 dollars </Example>
  <ListenFor> add {amount} {currency} </ListenFor>
  <Feedback> Adding some money </Feedback>
  <Navigate/>
</Command>

<PhraseList Label="currency">
    <item>dollar</item>
    <item>euro</item>
    <item>pound</item>
</PhraseList>

<PhraseList Label="amount">
</PhraseList>
4

1 回答 1

4

我找到了一种接收号码的方法,但它并不完美。

<PhraseTopic Label="amount" Scenario="Commands">
  <Subject>Phone Number</Subject>
</PhraseTopic>

注意我使用的是PhraseTopic而不是PhraseList。我真的不知道Scenario这里哪个是最好的,但我发现Commands比没有Scenario设置产生更好的结果。出于某种奇怪的原因,必须将 PhraseTopic 标记放在所有 PhraseList 标记之后...

在尝试主题时,自动完成功能会显示一些最有希望的选项Date/TimeAddresses以及Phone Number. 在尝试多个主题时,我永远无法匹配,但是使用“电话号码”(或者即使没有这样的选项,也只能使用“数字”),我能够在某种程度上一致地接收数字值。

该号码以数字形式出现,因此我只需要int.TryParse(myText, out myNumber)并使用它或说“无效的号码输入”。

请注意,即使有主题和场景限制,也可以在此处输入任何内容......以下将起作用:

"Hey Cortana, MyAppName add blah blah blah dollars"

金额实际上是"blah blah blah"

于 2015-11-26T18:33:33.890 回答