2010-11-23 3 views

ответ

5

Я предполагаю, что они являются частными, недокументированными и, возможно, не подлежащими вызову api's.

Я не мог себе представить, какие огромные последствия для безопасности для того, чтобы внешняя сторона/приложение могла опросить местоположение телефона без согласия пользователя.

+1

+1 Это настоящая причина быть достаточно параноидальной, чтобы держать эти API закрытыми. – BoltClock 2010-11-23 02:10:48

0

Устройство iOS уже поддерживает соединение с одним из серверов Push от Apple, если push включен, а сервер должен знать устройство в конце соединения (для определения push-уведомлений для доставки к нему). Самый простой способ построить это - заставить сервер сказать «скажи мне, где ты!» как push-уведомление.

Устройство также попадает на серверы Apple по другим причинам (обновление App Store, обнаружение входа в систему), но менее вероятно, что сервер может идентифицировать устройство в этих случаях.

Это говорит, что вы можете сделать это с согласием пользователя:

  • сделать ваше приложение фона «Voip» приложение (<key>UIBackgroundModes</key><array><string>voip</string></array> я думаю)
  • При запуске приложения, убедитесь, что вы можете получить текущее местоположение (я не уверен, что произойдет, если вы сделаете это, пока ваше приложение задумано).
  • Поддерживайте подключение «voip» к вашему серверу.
  • Когда сервер запрашивает устройство для его местоположения, снова спросите местоположение ядра для местоположения и отправьте его на сервер. (Я думаю, вам также нужно либо «местоположение» в UIBackgroundModes, либо вам нужно поддерживать соединение активным, возможно, в обоих направлениях, первое может быть проще.)

Вы не сможете остановить «местоположение» services "из строки состояния. Обычные многозадачные оговорки также применяются (ваше приложение может быть убито, если в телефоне заканчивается память, «voip» заставляет ваше приложение перезапускаться когда-нибудь позже).

+0

+1 за хитрость, но -1 за советы, которые, вероятно, заставят приложение запретить ... – 2011-10-18 14:49:32

0

Я уверен, что если вы сделаете «трюк voip», вашему приложению будет отказано в магазине. Это разрешено только в том случае, если ваше приложение фактически является приложением VOIP, а не просто использует его в качестве метода для обхода ограничений фоновой обработки.

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