所以我尝试使用后台任务将Cortana集成到我的通用Windows应用程序中,因为我需要与Cortana建立对话。
我正在关注here
中的示例上面的示例使用IBackgroundTask在AdventureWorksVoiceCommandService中构建对话和明确的行程名称匹配
所以我试图在一个非常基本的样本上做同样的事情:
using Windows.ApplicationModel.Background;
namespace AdventureWorks.VoiceCommands
{
public sealed class TestBgService : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
var someVar = taskInstance;
}
}
}
我以这种方式更新了Package清单:
<Extensions>
<uap:Extension Category="windows.appService" EntryPoint="AdventureWorks.VoiceCommands.TestBgService">
<uap:AppService Name="TestBgService" />
</uap:Extension>
</Extensions>
我的VCD文件包含以下内容:
<Command Name="heyHowLetsGo">
<Example> Hey How Lets Go </Example>
<ListenFor RequireAppName="BeforeOrAfterPhrase">Hey How Lets Go</ListenFor>
<VoiceCommandService Target="TestBgService"/>
</Command>
在AdventureWorks smaple应用程序中运行它可以正常工作(实际随机,但id不会给我错误),在我的通用Windows应用程序中运行相同的怪异代码,当她询问Cortana 1对1匹配的字符串时,她总是说:
出了点问题。稍后再试
所以我认为她确实认识到命令模式(&#34; Hey How Lets Go&#34;),但是有些奇怪的原因是她无法午餐或运行BackgroundTask
最令人沮丧的是,没有采取任何方式来调查CORTANA消息!!
如果我想知道什么是错误的 - &gt;我无法做到这一点。
当错误发生时,我能够从那个东西获得的唯一可能输出是:
Exception thrown at 0x00007FFC15401F28 in SearchUI.exe: Microsoft C++ exception: wil::ResultException at memory location 0x0000007DF1CFD180.
Exception thrown at 0x00007FFC15401F28 in SearchUI.exe: Microsoft C++ exception: [rethrow] at memory location 0x0000000000000000.
Exception thrown at 0x00007FFC15401F28 in SearchUI.exe: Microsoft C++ exception: Js::JavascriptExceptionObject at memory location 0x0000007DFB9F7DC0.
请,如果有人有任何想法,体验软件的和平 - &gt;没有回答就不会过去。我现在坐在这件事上超过一天没有任何动静。
是的 - &gt;我在启动项目中添加了Project with BackgroundTask作为参考 - &gt;没有帮助
UPDATE1:
因此,我设法运行测试BackgroundTask,将精确的VoiceCommandService项目从示例应用程序复制到我的应用程序中,并添加(并且很重要)作为参考(单击您的启动项目,在工具栏中的标题得到项目 - &gt;添加参考 - &gt;在那里添加你的项目)
将其添加为项目依赖项或参考路径 - &gt;有0效果 (*它是sooo微软,对不起)
UPDATE2:
好的,所以我设法迫使她开始谈论我的任务!!
这可以视为已解决。