2011-02-06 17 views

Odpowiedz

13

CLLocationManager zapewnia metody klasy do określenia dostępności usług Lokalizacja:

- (BOOL)locationServicesEnabled (for < iOS 4.0)

+ (BOOL)locationServicesEnabled (for iOS 4.0 and greater)

+ (CLAuthorizationStatus)authorizationStatus (for iOS 4.2+)

(i inni, patrz dokumentacja)

+0

Ta nieruchomość jest tym czego szukałem! Dziękuję Ci! =) – nosuic

+6

uważaj, że 'authorizationStatus' wymaga iOS4.2 + i' + (BOOL) locationServicesEnabled' wymaga iOS4.0 ... A dla poprzednich wersji iOS jest to '- (BOOL) locationServicesEnabled' ... –

3

Jeśli twoja aplikacja absolutnie nie może być uruchomiona bez Usług lokalizacji, możesz ustawić Usługi lokalizacji jako warunek instalacji/uruchomienia aplikacji przy użyciu Info.plist aplikacji. Robisz to, dodając klucz UIDeviceCapabilities do listy Info.plist aplikacji i nadając mu odpowiednią wartość "location-services" minus cytaty.

Po skonfigurowaniu tej opcji, jeśli usługi lokalizacyjne są wyłączone lub urządzenie znajduje się w trybie samolotowym, lub gdy jakiekolwiek inne działanie uniemożliwia korzystanie z usług lokalizacyjnych na urządzeniu, system iOS wyświetla monit o włączenie w Usługach lokalizacji po otwarciu aplikacji.

EDYCJA: Krótkie eksperymenty zdają się wskazywać, że system iOS nie monituje użytkownika w takich okolicznościach, więc nie byłoby to dobre rozwiązanie dla Ciebie.

Aby uzyskać więcej informacji, zobacz sekcję Najważniejsze informacje o liście właściwości w dokumentacji programisty firmy Apple.

+0

Dziękuję bardzo za informacje! – nosuic

1

Użyj poniższego kawałek kodu ...

if (![CLLocationManager locationServicesEnabled]) { 


    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled" 
                message:@"To re-enable, please go to Settings and turn on Location Service for this app." 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 

} 
0

Użyj następującego kodu, który będzie działał nawet w iOS 8.

if([CLLocationManager locationServicesEnabled]&& 
    [CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied) 
{ 
    //...Location service is enabled 
} 
else 
{ 
//...Location service is disabled 
} 
Powiązane problemy