Почему на моем [iPhone] не срабатывают уведомления с информацией о местоположении?

У меня есть приложение для iPhone, которое знает о местоположении (мне бы ХОТЕЛОСЬ, чтобы оно было! ;), но по какой-то причине уведомления о местоположении никогда не срабатывают.

Я довольно хорошо разбираюсь в iPhone SDK (более 30 лет разработки, iPhone с первого дня), и я думал, что следовал всей документации и примерам, чтобы правильно все настроить. Однако, когда я устанавливаю уведомление, когда я вхожу/выхожу из регионов, например, из дома и продуктового магазина, а затем перемещаюсь между двумя точками, я не получаю уведомления.

Я уверен, что это что-то очень простое, что я пропустил, например, «вы должны зарегистрироваться в Apple как приложение, поддерживающее уведомления» (вы этого не делаете, верно?!), но я просто не понимаю, что это такое.

Каковы некоторые простые ошибки, связанные с уведомлением n00b, которые могут привести к тому, что приложение просто не получит уведомления?

Любые подсказки?

Пока мы на этом - есть ли хороший способ протестировать/отладить этот материал в симе, скажем, вводя события типа "сейчас представьте, что мое местоположение находится ЗДЕСЬ"? (Я знаю: 2 вопроса. Эй, они тесно связаны!)

Спасибо!

(Да, да -- конечно, это все на iOS-4, с 4.latest SDK...)


person Olie    schedule 02.08.2010    source источник
comment
Плохая новость заключается в том, что нет хорошего способа (по крайней мере, в xcode 3) заставить эмулятор выполнять события местоположения. Это можно сделать только на реальном устройстве. Позор тоже, потому что эмулятор Android мог сделать это с первого дня.   -  person KevinDTimm    schedule 02.08.2010
comment
позвольте мне добавить это, загрузите пример приложения для определения местоположения с сайта developer.apple.com, таким образом, вы можете быть уверены, что ничего не пропустили.   -  person KevinDTimm    schedule 02.08.2010
comment
@Kevin: можешь дать ссылку? Работающий образец проекта с учетом местоположения - это ИМЕННО то, с чем мне нужно сравнить, но я не смог найти его (может быть, у меня просто плохой понедельник :\) Спасибо!   -  person Olie    schedule 02.08.2010


Ответы (3)


Пример кода (упомянутый ранее) см.:

http://developer.apple.com/iphone/library/samplecode/LocateMe/Introduction/Intro.html

что касается сима, нет, он не будет предоставлять обновления. очень плохо, SIM-карта Android сделала это с первого дня (обратите внимание, что этот ответ - xcode 3.x, я еще не сделал 4.x)

person KevinDTimm    schedule 03.08.2010

Чего мне не хватало: regionMonitoringAvailable возвращает НЕТ на iPhone 3G и 3GS. О!

ПРИМЕЧАНИЕ. Вы можете обойти это в 3GS с помощью startMonitoringSignificantLocationChanges, но даже это недоступно в 3G.

Подробнее об этом здесь:

http://longweekendmobile.com/2010/06/30/location-region-data-in-background-on-ios4-iphone/

person Olie    schedule 04.08.2010
comment
ДРУГАЯ вещь, которую мне не хватило в моем тестировании: я живу в палках, и уведомления о местоположении срабатывают при смене вышки сотовой связи. Итак, несмотря на то, что я проехал больше мили, находясь на той же вышке сотовой связи, я не получал уведомлений. Как только я вошел в город и приблизился к некоторым башням, все пошло лучше. - person Olie; 24.08.2010

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

Совет: попробуйте проехать по шоссе пару десятков километров, посмотрите, что получится. :)

person jer    schedule 02.08.2010