Cortana BackgroundTask Интеграция

Поэтому я пытаюсь интегрировать Cortana в мое универсальное приложение для Windows с помощью фоновой задачи, потому что мне нужно создать диалог с Cortana.

Я следовал за образцами отсюда

В приведенном выше примере используется IBackgroundTask для построения диалога и однозначного соответствия имени поездки в AdventureWorksVoiceCommandService

Поэтому я пытаюсь сделать то же самое на самом простом примере:

using Windows.ApplicationModel.Background;

namespace AdventureWorks.VoiceCommands
{
    public sealed class TestBgService : IBackgroundTask
    {
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            var someVar = taskInstance;
        }
    }
}

И я обновил пакетный манифест следующим образом:

  <Extensions>
    <uap:Extension Category="windows.appService" EntryPoint="AdventureWorks.VoiceCommands.TestBgService">
      <uap:AppService Name="TestBgService" />
    </uap:Extension>
  </Extensions>

И файл My 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, которую она всегда говорит:

Что-то пошло не так. Попробуйте позже

Поэтому я предполагаю, что она распознает шаблон команды ("Привет, как пойдем"), но по какой-то причудливой причине она не может пообедать или запустить BackgroundTask

Самым большим разочарованием является то, что нет никакого безумного пути отладки сообщений Кортаны!!

Если я хочу знать, ЧТО ТОЧНО НЕПРАВИЛЬНО -> я не смогу это сделать.

Единственный возможный вывод, который я смог получить от этой вещи, когда происходит ошибка, это:

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.

Пожалуйста, если у кого-то есть идеи, попробуйте этот мир программного обеспечения -> не проходите мимо, не отвечая. Я сижу на этой штуке больше суток без движения.

И да -> я добавил проект с BackgroundTask в качестве ссылки в автозагрузке проекта -> не помогло

Update1:

  1. Таким образом, мне удалось запустить тест BackgroundTask, скопировав точный проект VoiceCommandService из примера приложения в мое приложение и добавив его (и это важно) в качестве справочного материала (нажмите на стартовый проект, в панели инструментов в заголовке попал в Project -> Добавить Ссылка -> добавь свой проект туда)

  2. добавление его как Зависимости проекта или Ссылочный путь -> имеет эффект 0 (* это так Microsoft, извините)

  3. Мой testService в другом связан с запуском проекта, так как Ссылка по-прежнему дает тот же дерьмовый ответ от удивительного Кортана

UPDATE2:

Итак, мне удалось заставить ее начать говорить о моих задачах!!

  1. Для того, чтобы эти BackgroundTask работали, вам нужно иметь их в отдельном проекте.
  2. Этот проект ДОЛЖЕН быть включен в качестве ссылки в ваш проект Statup
  3. Этот проект ДОЛЖЕН иметь тип: Windows Runtime Component
  4. Ваша BackgroundTask НЕ ДОЛЖНА содержать конструктор -> иначе cortana будет освобождена от него. Выполните инициализацию и другие действия с помощью метода Run().

Это можно считать решенным.

0 ответов

Другие вопросы по тегам