积极答复者
UWP后台集成Cortana,应用程序与cortana界面如何交互?

问题
答案
-
你好,
后台任务的功能主要是响应Cortana收到的语音命令,应用程序通过后台App Service来触发,这样我们就能在后台任务中进行交互。
VoiceCommandServiceConnection类:它的实例可以从后台任务实例的触发器数据中获得。它使用“FromAppServiceTriggerDetails”方法来获取实例。该类有几个重要的方法如下:
-
ReportSuccessAsync(VoiceCommandResponseresponse):通知Cortana,处理已经完成,并返回一条消息,传递给Cortana的面板显示。(注意:一旦Cortana启动后台服务,应用服务有0.5秒的时间调用ReportSuccessAsync方法。Cortana使用应用提供的数据显示并说出VCD文件中指定的反馈。如果应用进行该调用的时间超过0.5秒,Cortana将显示切换屏幕,直到应用程序调用ReportSuccessAsync方法为止,最多显示5秒。如果应用服务不调用 提供信息的 VoiceCommandServiceConnection 方法,则用户将收到一条错误消息并且该应用服务将会取消。)
-
ReportFailureAsync(VoiceCommandResponseresponse):该方法用于向Cortana反馈错误信息。
-
ReportProgressAsync(VoiceCommandResponseresponse):该方法用于向Cortana报告进度,但并不指定具体的进度值,只是在Cortana面板上会显示时长5秒钟的进度条。
-
RequestAppLaunchAsync(VoiceCommandResponseresponse):该方法用于向Cortana请求启动当前应用。
-
RequestConfirmationAsync(VoiceCommandResponseresponse):该方法用于向Cortana面板发送一条需要用户确认的消息,后台服务会等待用户的确认结果,以决定下一步做什么操作。
-
RequestDisambiguationAsync(VoiceCommandResponseresponse):该方法用于向Cortana面板发送一条需要用户确认的消息。与上面方法不同的是,这个方法会在Cortana面板上列出多个选项,让用户说出或点击要选择的选项,Cortana会把用户选择的项返回给应用服务,以决定下一步做什么操作。(注意:作为方法参数的VoiceCommandResponse实例一定要使用CreateResponseForPrompt静态方法来创建)
VoiceCommandUserMessage类:该类主要用于Cortana在与后台服务的交互过程中,向Cortana面板发送消息的封装。它有两个重要的属性:
-
DisplayMessage:要显示在Cortana面板上的文本信息。
-
SpokenMessage:希望Cortana说出来的文本。
希望能帮到你!
- 已标记为答案 YHDingMicrosoft employee, Moderator 2015年11月10日 6:50
-
全部回复
-
你好,
后台任务的功能主要是响应Cortana收到的语音命令,应用程序通过后台App Service来触发,这样我们就能在后台任务中进行交互。
VoiceCommandServiceConnection类:它的实例可以从后台任务实例的触发器数据中获得。它使用“FromAppServiceTriggerDetails”方法来获取实例。该类有几个重要的方法如下:
-
ReportSuccessAsync(VoiceCommandResponseresponse):通知Cortana,处理已经完成,并返回一条消息,传递给Cortana的面板显示。(注意:一旦Cortana启动后台服务,应用服务有0.5秒的时间调用ReportSuccessAsync方法。Cortana使用应用提供的数据显示并说出VCD文件中指定的反馈。如果应用进行该调用的时间超过0.5秒,Cortana将显示切换屏幕,直到应用程序调用ReportSuccessAsync方法为止,最多显示5秒。如果应用服务不调用 提供信息的 VoiceCommandServiceConnection 方法,则用户将收到一条错误消息并且该应用服务将会取消。)
-
ReportFailureAsync(VoiceCommandResponseresponse):该方法用于向Cortana反馈错误信息。
-
ReportProgressAsync(VoiceCommandResponseresponse):该方法用于向Cortana报告进度,但并不指定具体的进度值,只是在Cortana面板上会显示时长5秒钟的进度条。
-
RequestAppLaunchAsync(VoiceCommandResponseresponse):该方法用于向Cortana请求启动当前应用。
-
RequestConfirmationAsync(VoiceCommandResponseresponse):该方法用于向Cortana面板发送一条需要用户确认的消息,后台服务会等待用户的确认结果,以决定下一步做什么操作。
-
RequestDisambiguationAsync(VoiceCommandResponseresponse):该方法用于向Cortana面板发送一条需要用户确认的消息。与上面方法不同的是,这个方法会在Cortana面板上列出多个选项,让用户说出或点击要选择的选项,Cortana会把用户选择的项返回给应用服务,以决定下一步做什么操作。(注意:作为方法参数的VoiceCommandResponse实例一定要使用CreateResponseForPrompt静态方法来创建)
VoiceCommandUserMessage类:该类主要用于Cortana在与后台服务的交互过程中,向Cortana面板发送消息的封装。它有两个重要的属性:
-
DisplayMessage:要显示在Cortana面板上的文本信息。
-
SpokenMessage:希望Cortana说出来的文本。
希望能帮到你!
- 已标记为答案 YHDingMicrosoft employee, Moderator 2015年11月10日 6:50
-