【问题标题】:Parse number with cortana用 cortana 解析数字
【发布时间】:2016-02-29 17:17:37
【问题描述】:
我有一个 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>
【问题讨论】:
标签:
c#
windows-10
uwp
cortana
windows-10-universal
【解决方案1】:
我找到了一种接收号码的方法,但并不完美。
<PhraseTopic Label="amount" Scenario="Commands">
<Subject>Phone Number</Subject>
</PhraseTopic>
请注意,我使用的是 PhraseTopic 而不是 PhraseList。我真的不知道哪个Scenario 是最好的,但我发现Commands 比没有设置Scenario 产生更好的结果。出于某种奇怪的原因,PhraseTopic 标记必须放在所有 PhraseList 标记之后...
在尝试主题时,自动完成功能会显示几个选项,其中最有希望的是 Date/Time、Addresses 和 Phone Number。在尝试多个主题时,我永远无法匹配,但是使用“电话号码”(或者即使没有这样的选项,也可以只使用“数字”),我能够在某种程度上一致地接收数字值。
号码以数字形式出现,所以我只需要int.TryParse(myText, out myNumber) 并使用它或说“无效号码输入”。
请注意,任何内容都可以在此处输入,即使有主题和场景限制...以下将起作用:
"Hey Cortana, MyAppName add blah blah blah dollars"
金额将是"blah blah blah"