Взломанный iPhone 3g + startMonitoringSignificantLocationChanges - PullRequest
1 голос
/ 07 июля 2010

Мне было интересно, был ли сломан мой код, или даже если взломанный (многозадачный режим активирован) iPhone 3g, возможно, не поддерживает это.

Я создаю CLLocationManager, устанавливаю делегат и т. Д. И говорю ему «startMonitoringSignificantLocationChanges». Всякий раз, когда приложение вызывается, я записываю это в textView. Но ничего не происходит. Нет, если я еду 5 или 20 км.

Так я и подумал, ну давай немного покопаемся. Я нашел этот API: NSLog (@ "Доступное изменение местоположения:% i \ n", [CLLocationManager essentialLocationChangeMonitoringAvailable]);

К сожалению, он возвращает ноль: [

Итак, я спрашиваю: кто-нибудь заставил его работать на 3g? Есть намеки? Невозможно?

Ответы [ 2 ]

1 голос
/ 07 июля 2010

iOS4 приносит два новых фоновых режима в Базовое местоположение: startMonitoringSignificantLocationChanges и startMonitoringForRegion:desiredAccuracy: с использованием CLRegion.

Последний работает только на устройстве iPhone 4, вероятно, из-за нового оборудования GPS в устройстве,Я подтвердил это с представителем Apple на форумах разработчиков Apple.

Тем не менее, я успешно протестировал startMonitoringSignificantLocationChanges на 3GS.Я протестировал тот же код на взломанном 3G, а также на ванильном 3G.Я считаю, что просто ответ заключается в том, что Apple решила не включать эту функцию в 3G из-за нехватки ресурсов.

Когда эта функция включена, ваша программа будет запускаться в фоновом режиме при значительном событии местоположенияпроисходит.Эта фоновая многозадачность может расширить 3G до предела (в глазах Apple).В документации Apple на эту тему ОЧЕНЬ неясно, какие устройства поддерживают какие.Там написано «вызовите эти методы и положитесь на то, что они возвращают».Я уже писал на их форумах разработчиков, что хотел бы, чтобы они просто ПОНИМАЛИ, какие устройства поддерживают какие режимы.

«Официальная» документация Apple по тестированию доступности

Мой пост в блоге, документирующий, как это работает на 3GS, iPhone 4

0 голосов
/ 07 июля 2010

Я пробовал это вчера, получил тот же результат. У меня взломанный iPhone 3G под управлением iOS4 с активированной многозадачностью.

[CLLocationManager essentialLocationChangeMonitoringAvailable] возвращает 0

Если я использую [manager startUpdatingLocation], он работает в фоновом режиме, но использует много ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...