2015-09-10 4 views
3

В настоящее время я работаю над интеграцией cortana в своем приложении UWP с использованием C# и xaml. Я воспользовался этой статьей, чтобы начать работу с cortana https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn630430.aspx?f=255&MSPPError=-2147217396 Я написал весь необходимый код, я могу запустить приложение переднего плана, используя cortana, и я могу выполнять операции. Но я попытался запустить фоновое приложение с помощью Cortana, приложение открывается до всплеск экрана, а затем приложение падает. Я следил за приведенной ниже статьей для запуска приложений для фона, используя Cortana https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn974228.aspx Я следил за образцом командной строки cortana, предоставленным Microsoft, и я следил за приведенной выше ссылкой, но не смог ее выполнить. Есть ли какая-нибудь другая интересная статья, чтобы исправить эту проблему и как отладить приложение, когда мы запускаем фоновое приложение, чтобы я мог сохранить точку останова в коде, и я могу это выяснить. Кто-нибудь, пожалуйста, помогите мне в этом. Спасибо заранее.Не удается запустить фоновое приложение с голосовыми командами в Cortana в приложении UWP?

ответ

6

Вы можете отладить фоновое задание в Кортане, установив визуальную студию, чтобы дождаться запуска вашего кода. Он обнаружит Кортана загрузки фонового задания, и прикрепить автоматически:

шаги варьируются в зависимости от типа проекта (C#, JS или C++/сх), но общие шаги для отладки это

  1. Open свойства проекта для вашего проекта запуска (щелкните правой кнопкой мыши по проекту -> свойства)
  2. Перейти к разделу Отладка (или отладка) свойств проекта
  3. Установите либо одно из «Запуск приложения» на «Нет» (js или приложения C++), или «Не запускать, но ждать, пока мой код начнет», чтобы быть проверенным (приложения C#)
  4. Начать отладку.

Ваш код будет развернут, но VS будет ждать. Затем запускайте свою фонограмму Cortana, и она автоматически привязывается к BackgroundTaskHost.exe, когда ваш код запускается.

Если вы обнаружили, что VS никогда не придает, и вы не можете нажать точки останова, вы должны исследовать, если вы пропустили шаг где-то:

  • Проверьте, чтобы убедиться, VCD вы устанавливаете имеет правильная запись для тега VoiceCommandService. Цель должна совпадать с именем точки входа, установленной в манифесте пакета. Вопросы правописания и дела.
  • Проверьте манифест пакета, чтобы убедиться, что точка входа является правильным полным пространством имен
  • Убедитесь, что фоновая задача действительно включена в развернутый вывод сборки. Добавьте ссылку из стартового проекта основного приложения в фоновое задание (откройте раздел «Ссылки» проекта запуска, щелкните правой кнопкой мыши, добавьте ссылку и обратитесь к проекту фоновой задачи). Это заставит VS скопировать проект в вывод, чтобы Cortana мог его найти и запустить.

Если это не удается в какой-то момент после ударов точки останова, вы можете следить за тем, где именно это происходит, и я могу, возможно, сделать некоторые предложения, если это не исключение.

0

Я работаю над интеграцией Cortana с приложением UWP. И я также столкнулся с некоторыми ситуациями, когда мое приложение разбилось в неопределенное время. В моем случае у меня были некоторые проблемы с объявлением VoiceCommandContentTile. Вероятно, были некоторые ошибки в свойствах, таких как ContentTileType и AppLaunchArgument. Поэтому попробуйте удалить эти строки кода, если у вас есть. Это поможет вам определить местоположение вашей проблемы.

Также предлагаю вам перейти по ссылке https://msdn.microsoft.com/en-us/library/windows/apps/mt445538.aspx Вы должны изменить файл манифеста приложения, чтобы помочь Cortana перейти к вашему приложению, используя глубокую ссылку.

Я просто делюсь своим опытом, надеюсь, что это как-то вам поможет.

0

Начиная с Voice Command не запускается событие «OnLaunched» в App.xaml.cs.

Но и можно проверить OnActivated если аргументы типа VoiceCommandActivatedEventArgs

protected override void OnActivated(IActivatedEventArgs args) 
    { 
     base.OnActivated(args); 

     if (args.Kind == ActivationKind.VoiceCommand) 
     { 
      // Run your OnLunched Stuff 
     } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^