Определите, есть ли у iPhone/iPod Touch/iPad чип GPS или есть aGPS

Я пытаюсь конкретно определить, имеет ли устройство, на котором установлено приложение, чип GPS, использует aGPS или ничего. Если это iPhone или сотовый iPad, я хочу, чтобы он запускал определенный код.

Я надеялся найти что-то вроде определения доступности камеры...

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])

заранее спасибо.


person OscarTheGrouch    schedule 10.05.2011    source источник
comment
Ни в одном айфоне нет штатного чипа GPS. Все они aGPS (кроме iPhone 2g, у которого нет чипа GPS).   -  person Skyler Saleh    schedule 10.05.2011


Ответы (1)


Я не думаю, что aGPS означает то, что вы думаете.

Обычный GPS принимает сигналы со спутников с помощью антенны. Требуется время, чтобы зафиксировать сигнал, так как он должен быть получен как минимум от трех спутников, прежде чем он сможет определить позицию. Следовательно, блокировка иногда может занять пару минут.

aGPS, как и обычный GPS, использует антенну для приема сигналов со спутников. Тем не менее, у него есть дополнительная функция для ускорения их поиска: он отправляет данные через Интернет, которые сообщают ему, где спутники могут быть. Предполагая, что пользователь не ушел слишком далеко от того места, где он в последний раз получил GPS, эта информация означает, что устройство имеет общее представление о том, где искать входящий сигнал, поэтому оно может быстрее находить спутники. Как только он находит спутники, он работает так же, как обычный GPS.

Чтобы ответить на ваш вопрос, ни одно устройство iOS не имеет GPS, но не имеет aGPS. У оригинального iPhone не было ни того, ни другого, а у 3G было и то, и другое.

Я думаю, что вы на самом деле говорите о триангуляции вышек сотовой связи: это еще один метод определения местоположения, который менее точен, чем любая разновидность GPS, и не имеет возможности принимать сигналы со спутников.

Вы можете запросить у Core Location уровень точности отдельного местоположения: просмотрите свойство horizontalAccuracy на CLLocation. Если это kCLLocationAccuracyHundredMeters или выше, возможно, устройство не использует GPS или aGPS. Однако это не означает, что устройство на это не способно: возможно, оно просто еще не заблокировалось.

person Amy Worrall    schedule 10.05.2011