Как отлаживать фоновые агенты определения местоположения в Windows Phone 8

В настоящее время я разрабатываю приложение, в котором местоположение устройства должно быть отправлено на сервер. Я работал над статьями MSDN о фоновых агентах и ​​доступе к местоположению. Это работает до сих пор. Мое местоположение передается на сервер, когда я инициировал изменение местоположения, которое находится дальше, чем установленный MovementThreshold.

Однако я читал, что тестирование фоновых агентов может быть сложным. Если вы используете эмулятор, вы можете легко изменить местоположение вашего устройства очень часто. Но на реальном телефоне фоновые службы определения местоположения ограничены во время простоя до 30 минут, а выполнение команд должно занимать до 25 секунд. Фоновые агенты также могут быть отключены пользователем на экране настроек телефона. Они также деактивируются, когда агент падает более двух раз подряд. Другое ограничение заключается в том, что неактивные фоновые агенты останавливаются через 4 часа, если они не обновляют активную плитку приложений.

Мое приложение обновляет счетчик активных плиток, поэтому я думаю, что мой фоновый агент должен работать до 14 дней без перезапуска из моего приложения. Я протестировал приложение со вчерашнего дня до сегодняшнего дня и увидел, что фоновый агент работает (когда посмотрел в настройках). Была также видна небольшая точка в верхней панели, указывающая, что программа обращается к географическому местоположению телефонов. Тем не менее, иногда точка исчезает, и мой второстепенный агент убивается без видимых причин.

Поэтому мой вопрос:

  • Как я могу надежно проверить географическое местоположение на реальном устройстве без необходимости путешествовать с телефоном и подключенным отладочным ноутбуком?
  • Как я могу своевременно протестировать упомянутые мной сценарии тайм-аута (30 минут, 4 часа, 14 дней)?
  • Как я могу проверить эти два сбоя фонового агента?

1 ответ

Решение

Я думаю, что я сделал некоторые неверные интерпретации того, как WP8 определяет фоновых агентов. Новый фоновый агент WP8 для определения местоположения активен только во время работы приложения. Это означает, что приложение не должно закрываться кнопкой возврата. Однако его можно переключить на домашний экран с помощью кнопки Windows или с помощью кнопки длительного удержания для доступа к другим приложениям из многозадачности.

По поводу моих вопросов:

  • Как я могу надежно проверить географическое местоположение на реальном устройстве без необходимости путешествовать с телефоном и подключенным отладочным ноутбуком?
  • Как я могу своевременно протестировать упомянутые мной сценарии тайм-аута (30 минут, 4 часа, 14 дней)?

У меня до сих пор нет подходящего решения. Вы в некоторой степени ограничены тестированием на реальных устройствах и необходимым временем для проверки своих ограничений.

  • Как я могу проверить эти два сбоя фонового агента?

Я не знаю, как проверить это программно. Может случиться так, что пользователь может увидеть это сбойное приложение как заблокированное приложение в списке фоновых задач настройки телефона. Должен быть способ обнаружить заблокированное приложение из этого списка с помощью ссылок, которые я предоставил выше.

Для моего проекта мне понадобился фоновый агент определения местоположения, который работает даже с заблокированным экраном или без открытого приложения. Поэтому я использовал PeriodicAgent, чтобы запрашивать местоположение каждые 30 минут, чтобы я мог отправить его на сервер. Но имейте в виду, что эти фоновые агенты не могут получить доступ к настройкам или классам вашего приложения (см. Связь между основным приложением и фоновым агентом).

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