2011-09-02 27 views
7
etkin olup olmadığını karar vermek ne olursa olsun elle geçiş anahtarının, EVET döndürür
location = [[CLLocationManager alloc] init]; 
    location.desiredAccuracy = kCLLocationAccuracyBestForNavigation ; 
    location.distanceFilter = 10 ; 
    location.delegate=self; 



    locationEnabledBool = [CLLocationManager locationServicesEnabled]; 

    if (locationEnabledBool ==NO) { 
     UIAlertView *locationAlert = [[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]; 
     [locationAlert show]; 
     [locationAlert release]; 

    } 
    else 
     [location startUpdatingLocation]; 

locationEnabledBool değeri konum hizmetleri etkinleştirildiğinde olsun veya olmasın bağımsız daima YES vardır. Herhangi bir vücut yardım edebilir mi?onay daima konum hizmetleri

cevap

11

ben linke buldum

if ([CLLocationManager locationServicesEnabled] ==NO || [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) { 
    //give error message 
} 

deneyin. Yanıtınız için

Detecting whether location services are enabled for my app

+0

'halinde ([CLLocationManager locationServicesEnabled] == NO && [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) { // hata iletisi elde} ilk [dirsek]' in küçük bir yazım hatası ve bir && yerine || – kalafun

0

Bu kodu test ederken, yalnızca iOS Simulator yazılımını kullanarak değil, bir cihazda test ettiğinizden emin olmanız gerekir.

Ayrıca, söz konusu cihazda Ayarlar bölümünde çift çek Konum Servisleri, ayarların ilk sayfasında, Kapalı diyor emin olmak için düşündürmektedir. yerine

if (locationEnabledBool == NO) { //give error message } 

ait

+1

teşekkürler. Kodu cihazda çalıştırıyordum ve Konum Servislerinin ayarlarda KAPALI olduğunu kontrol ettim. yerine (locationEnabledBool == NO) ise (locationEnabledBool == NO || ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied)) benim için çalıştı. – alekhine