Вопрос

Я проверил свое устройство (iPod Touch 2G iOS 4.1), если службы местоположения включены

permitted = [locationManager locationServicesEnabled];

И я всегда получаю да, будь то расположение услуг включена или нет. Я говорю о общей кнопке для сервисов местоположения, а не на кнопку приложения. На iPad с iOS 3.2.2 все работает нормально.

Это было полезно?

Решение

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

Документация Apple Состояния:Если пользователь отрицает использование вашей заявки на использование сервиса местоположения, этот метод сообщает о kCLErrorDenied ошибка. При получении такой ошибки вы должны остановить службу местоположения.

Другие советы

Помните это [locationManager locationServicesEnabled] является устарели с IOS 4.0Отказ Используйте метод класса [CLLocationManager locationServicesEnabled] вместо.

Кнопка «Конкретная приложения» может быть получена

[CLLocationManager authorizationStatus]

Когда вы используете

[CLLocationManager locationServicesEnabled]

Затем вы проверяете, включены ли местоположение в целой системе. Поэтому, когда вы переходите в настройки -> Расположение сервисов, и вы видите, что первый переключатель. Этот метод возвращает состояние этого состояния и не относится к вашему приложению.

Если вам нужно знать, имеет ли ваше приложение доступ к сервисам местоположения @Pascalius Ответ.

Быстрый 3.1 Функция Возврат -> Статус: Bool и сообщение: String

func isLocationEnabled() -> (status: Bool, message: String) {
    if CLLocationManager.locationServicesEnabled() {
        switch(CLLocationManager.authorizationStatus()) {
        case .notDetermined, .restricted, .denied:
            return (false,"No access")
        case .authorizedAlways, .authorizedWhenInUse:
            return(true,"Access")
        }
    } else {
        return(false,"Turn On Location Services to Allow App to Determine Your Location")
    }
}
if(![CLLocationManager locationServicesEnabled] || ([CLLocationManager authorizationStatus]!=kCLAuthorizationStatusAuthorizedWhenInUse && [CLLocationManager authorizationStatus]!=kCLAuthorizationStatusAuthorizedAlways))
{
        ; // app doesn't have access to localization to whatever you want
}

LockationsEvicsEnableSeAndeAndeAndAlebesEnableBEADENALDMANDANEADENATHENALDENALDENALDENALDENALDENALDENALD

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top