none
将Cortana与WP8.1应用集成时遇到的一个问题? RRS feed

  • 问题

  • 我的WP8.1应用使用了快速恢复机制,正常在应用没有启动情况下,通过Cortana能够唤起应用的相关页面并在NavigationContext.QueryString也能找到相应的传入参数;但一旦应用已启动置在后台,这时再通过Cortana,只能唤起相应的应用页面,但在NavigationContext.QueryString里没有任何参数,请问这是什么原因?应该如何解决?谢谢。

    VCD代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    
    <VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.1">
      <CommandSet xml:lang="zh-CN">
        <CommandPrefix> 号码帮手 </CommandPrefix>
        <Example> 查询号码不再愁~ </Example>
    
        <Command Name="launchFunc">
          <Example> 打开帮助 </Example>
          <ListenFor> [打开] {launchFuncTerms} </ListenFor>
          <ListenFor> [开启] {launchFuncTerms} </ListenFor>
          <ListenFor> [启动] {launchFuncTerms} </ListenFor>
          <ListenFor> {launchFuncTerms} </ListenFor>
          <Feedback> 正在启动{launchFuncTerms}中... </Feedback>
          <Navigate Target="Main/Views/MainPage.xaml" />
        </Command>
    
        <Command Name="queryPhonenumber">
          <Example> 查询肯德基外卖 </Example>
          <ListenFor> [帮忙] 查询 {openTerms} </ListenFor>
          <ListenFor> [请帮忙] 查询 {openTerms} </ListenFor>
          <ListenFor> 查询 {openTerms} </ListenFor>
          <Feedback> 正在查询{openTerms}中... </Feedback>
          <Navigate Target="Main/Views/MainPage.xaml" />
        </Command>
    
        <PhraseList Label="launchFuncTerms">
          <Item> 意见反馈 </Item>
          <Item> 帮助 </Item>
        </PhraseList>
    
        <PhraseTopic Label="openTerms" Scenario="Natural Language">
          <Subject> 号码帮手 </Subject>
        </PhraseTopic>
    
      </CommandSet>
    </VoiceCommands>

    2014年11月5日 4:16

答案

全部回复

  • 你好 Schmeichel,

    你的App是通过什么方式监测传进来的命令的?

    我从文档上来看 快速入门:语音命令

    • 首先,你需要查明应用是否被语音命令激活,然后确定命令的名称和说出的实际文本。你可以通过替代 Application.OnActivated 方法和(如果你被语音命令激活)查看 VoiceCommandActivatedEventArgs.Result 完成此操作。当你确定所使用的语音命令和所说的文本时,你可以在应用中采取适当的操作。
    • 回到“创建 VCD 文件”部分中的两个示例,如果用户说“Contoso Widgets,显示畅销商品”,那么 SpeechRecognitionResult.RulePath 属性将包含该命令的名称“showWidgets”,而且 SpeechRecognitionResult.Text 属性将设置为所说的文本“显示畅销商品”。如果用户说“Contoso Widgets,畅销商品”(这同样有效),那么唯一的差别将是,SpeechRecognitionResult.Text 属性设置为“畅销商品”。如果用户说:“Contoso Widgets,向 Avery 发消息说我快迟到了”,那么 RulePath 将包含“消息”而且 Text 将设置为“向 Avery 发消息说我快迟到了”。

    你需要从VoiceCommandActivatedEventArgs而不是NavigationContext里面获取你的语音内容。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2014年11月6日 7:53
    版主
  • @James, 谢谢!

    我的应用是基于Windows Phone Silverlight 8.1框架写的,没有Application.OnActivated方法该怎么检测呢?

    另附我的demo:

    http://yunpan.cn/csIkGvCeQ3zG7 (提取码:5085)

    2014年11月7日 10:01
  • @James, 谢谢!

    我的应用是基于Windows Phone Silverlight 8.1框架写的,没有Application.OnActivated方法该怎么检测呢?

    另附我的demo:

    http://yunpan.cn/csIkGvCeQ3zG7 (提取码:5085)


    你好,

    我有看到你去英文论坛发帖:https://social.msdn.microsoft.com/Forums/en-US/a9b1b5a5-e4b1-4a7f-b844-f836477caef4/a-problem-when-i-integrate-cortana-with-my-wp81-app?forum=wpdevelo

    Herro 已经给出了一个解决方案, 我这边已经进行了测试,会解决你的问题:


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月17日 5:52
    版主
  • 非常感谢 这个问题困扰我很久了 :-)
    2014年11月18日 9:10
  • 非常感谢 这个问题困扰我很久了 :-)

    你好,

    很高兴帮助到你,如果真正解决了问题,请标记有帮助的回复作为答案:)


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月18日 9:38
    版主