В настоящее время я работаю над интеграцией 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?
ответ
Вы можете отладить фоновое задание в Кортане, установив визуальную студию, чтобы дождаться запуска вашего кода. Он обнаружит Кортана загрузки фонового задания, и прикрепить автоматически:
шаги варьируются в зависимости от типа проекта (C#, JS или C++/сх), но общие шаги для отладки это
- Open свойства проекта для вашего проекта запуска (щелкните правой кнопкой мыши по проекту -> свойства)
- Перейти к разделу Отладка (или отладка) свойств проекта
- Установите либо одно из «Запуск приложения» на «Нет» (js или приложения C++), или «Не запускать, но ждать, пока мой код начнет», чтобы быть проверенным (приложения C#)
- Начать отладку.
Ваш код будет развернут, но VS будет ждать. Затем запускайте свою фонограмму Cortana, и она автоматически привязывается к BackgroundTaskHost.exe, когда ваш код запускается.
Если вы обнаружили, что VS никогда не придает, и вы не можете нажать точки останова, вы должны исследовать, если вы пропустили шаг где-то:
- Проверьте, чтобы убедиться, VCD вы устанавливаете имеет правильная запись для тега VoiceCommandService. Цель должна совпадать с именем точки входа, установленной в манифесте пакета. Вопросы правописания и дела.
- Проверьте манифест пакета, чтобы убедиться, что точка входа является правильным полным пространством имен
- Убедитесь, что фоновая задача действительно включена в развернутый вывод сборки. Добавьте ссылку из стартового проекта основного приложения в фоновое задание (откройте раздел «Ссылки» проекта запуска, щелкните правой кнопкой мыши, добавьте ссылку и обратитесь к проекту фоновой задачи). Это заставит VS скопировать проект в вывод, чтобы Cortana мог его найти и запустить.
Если это не удается в какой-то момент после ударов точки останова, вы можете следить за тем, где именно это происходит, и я могу, возможно, сделать некоторые предложения, если это не исключение.
Я работаю над интеграцией Cortana с приложением UWP. И я также столкнулся с некоторыми ситуациями, когда мое приложение разбилось в неопределенное время. В моем случае у меня были некоторые проблемы с объявлением VoiceCommandContentTile. Вероятно, были некоторые ошибки в свойствах, таких как ContentTileType и AppLaunchArgument. Поэтому попробуйте удалить эти строки кода, если у вас есть. Это поможет вам определить местоположение вашей проблемы.
Также предлагаю вам перейти по ссылке https://msdn.microsoft.com/en-us/library/windows/apps/mt445538.aspx Вы должны изменить файл манифеста приложения, чтобы помочь Cortana перейти к вашему приложению, используя глубокую ссылку.
Я просто делюсь своим опытом, надеюсь, что это как-то вам поможет.
Начиная с 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
}
}