2010-07-07 3 views
1

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

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

Так что я подумал, хорошо давайте копать немного. Я нашел этот API: NSLog (@ «Изменение местоположения доступно:% i \ n», [CLLocationManager significantLocationChangeMonitoringAvailable]);

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

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

ответ

1

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

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

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

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

Apple's "official" documentation for testing for availability

My blog post documenting how this works on 3GS, iPhone 4

+0

Это смешно. В то время как я искал его, я наткнулся на запись в блоге :-) В нем говорится: «[...], который должен быть ДА для iPhone 3G/3GS (а не iPod Touch)». Вот почему я даже побеспокоился, если это возможно как-то возможно :-) Спасибо за ваш тщательный ответ! – partel

+0

prattel - да, это было неправильно для 3G. Я исправил запись в блоге! – makdad

0

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

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

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

+0

Да, startUpdatingLocation использует GPS в зависимости от настроек. И GPS засасывает * много * мощности. : [ Действительно грустно. Угадайте, что я должен получить новое устройство:/ – partel

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