1

Я только что прочитал, что, хотя фоновые задачи Windows Phone 7.5 могут опроса для местоположения, они фактически не проводят опрос в режиме реального времени из GPS, но, скорее, вызовы API местоположения возвращают системно кэшированную позицию, которая обновляется только каждые пятнадцать минут.Как вы можете обновлять данные о местоположении на Windows Phone в фоновом режиме?

Это ограничение, конечно же, полностью аннулирует любую попытку сделать навигацию в фоновом режиме, поскольку вы можете получить довольно чертовски далеко за пределами пятна за пятнадцать минут, не говоря уже о том, что фоновая задача может выполняться только каждые тридцать минут или около того!

Сказанное, навигационное приложение Nokia и, как сообщается, приложение Runtastic продолжают отслеживать, когда они находятся в фоновом режиме (то есть не только под экраном блокировки), и оба находятся на рынке, что означает, что они были одобрены, поэтому кто-нибудь знает, как им удалось делать то, что SDK якобы не поддерживает?

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

+0

Возможный дубликат [Как я могу запустить свое приложение GPS в фоновом режиме?] (Http://stackoverflow.com/questions/6952413/how-can-i-run-my-gps-application-in-background) –

+0

Да, это отстой, но его хорошо документировано. У Маби WP8 будет решение. –

+0

Запустите приложение под блокировкой экрана и выключите IdleDetection. –

ответ

5

Вы сможете получить только то место, где выполняются ваши PeriodicTask (примерно каждые 30 минут, в зависимости от планировки ОС). Данные о местоположении, которые он извлекает из GeoCoordinateWatcher, будут получены из кеша ОС, а не непосредственно из оборудования GPS. Если ничего не выполняется, ОС обновит это с помощью грубых данных примерно каждые 15 минут. Однако, если приложение выполнило и извлекло мелкозернистые аппаратные данные GPS, то это будут данные, которые вы получите в своем PeriodicTask. Вы можете увидеть примеры этого, обратившись к GPS в своем приложении переднего плана и назначив команду PeriodicTask с ScheduledActionService.LaunchForTest.

+2

Это в основном то, что я вел. Вы просто добавили немного о другом приложении, обновляющем кеш, но это также относится к тому, что * моя * фоновая задача по-прежнему только обращается к кешированным данным. И на самом деле вы можете использовать тяжелую фоновую задачу, которая может выполняться так же часто, как раз в десять минут. Но опять же, это все еще не отвечает на вопрос, можно ли это сделать или нет. Разумеется, в Nokia есть приложение для навигации, и они не являются первыми (ala wide live tiles), но опять же, возможно, у них есть эксклюзивный доступ, остальные из нас не благодаря их партнерству с MS, что было бы жалко , – MarqueIV

+2

Я полагаю, что «тяжелая задняя задача» означает «ResourceIntensiveTask»? Если так, я не вижу нигде, что они могут запускаться каждые 10 минут, но вместо этого они могут работать для ** до ** 10 минут. Однако, учитывая другие ограничения, установленные на них (требуется мощность, WiFi,> 90% батареи, блокировка экрана. Ссылка: http://msdn.microsoft.com/en-us/library/hh202942(v=vs.92). aspx) Я сомневаюсь, что это полезно для вас. Короче говоря: то, что вы прямо спрашиваете, не представляется возможным со стандартным SDK. Возможно, вам придется искать interop (Ref: http://forum.xda-developers.com/showthread.php?t=1299134), но ... – MrMDavidson

+1

Для использования interop требуется, чтобы устройство было разблокировано. Ходят слухи, что некоторые приложения, попавшие на рынок, встречаются с использованием собственного кода и кода взаимодействия (Ref: http://pocketnow.com/windows-phone/microsoft-starts-allowing-native-arm-code-in-wp7-apps) но в отношении того, будет ли ваша заявка допущена на рынок с таким кодом? Вы играете в азартные игры. Это звучит как нечто, что может потребовать технического освобождения при его сертификации. Подробности о сертификации/освобождении: http://msdn.microsoft.com/en-us/library/hh202928(v=vs.92).aspx – MrMDavidson

0

Основываясь на моем опыте работы с фоновыми задачами, вы не сможете достичь того, что хотите, с периодическими или ResourceIntensive фоновых заданий.

Несмотря на то, что документация утверждает, что они запускаются каждые 30 минут, мой опыт в том, что они работают спорадически и непредсказуемо. За последние 14 часов периодическая задача моего приложения выполнялась в общей сложности 6 раз, и это довольно последовательно каждый день - он работает примерно раз в два часа. Для ресурсоемких задач я считаю, что они обычно работают примерно два раза в день. Я предполагаю, что ОС должна балансировать все процессы на телефоне и всех других приложениях, требующих выполнения своих фоновых задач, поэтому иногда ваш не делает разрезание. Очевидно, что ваш пробег может варьироваться в зависимости от вашего телефона (lumia 800 в моем случае) и приложений, которые вы установили.

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

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

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