2011-10-30 6 views
3

私はiPhoneアプリでジオロケーションを使用しています。ジオロケーションを数秒間使用した場合でも、アプリがバックグラウンドである場合でも、バッテリーはより早く消耗します。iOS:ジオロケーションがまだオンになっているかどうかを確認する方法

iPhoneデバイスでジオロケーションサービスがまだオンになっているかどうかを確認するにはどうすればよいですか?これは私が使用したコードです:

...

locationManager = [[CLLocationManager alloc] init]; // Create new instance of locMgr 
    locationManager.delegate = self; 

    locationManager.distanceFilter = kCLDistanceFilterNone; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 


    [locationManager startUpdatingLocation]; 
    NSLog(@"locationManager startUpdatingLocation"); 

    reverseGeocoder = [[MKReverseGeocoder alloc] initWithCoordinate:locationManager.location.coordinate]; 
    reverseGeocoder.delegate = self; 
    [reverseGeocoder start]; 

    } 

    ... 

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 


} 


- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error 
{ 
    NSLog(@"reverseGeocoder failed: %@", [error localizedDescription]); 

} 

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark 
{ 
    NSLog(@"locality %@", placemark.locality); 
    location = [placemark.locality retain]; 
} 

答えて

1

は、設定アプリに移動し、チェックして、アプリが位置情報サービスを使用しているかを見るために、位置サービスの下で、灰色の矢印があるでしょう最近使用したアプリの横にあり、活発に使用しているアプリの横に紫色の矢印が表示されています。

enter image description here

バッテリーの使用量を減らすために、あなたはすぐにあなたのニーズに十分に良好な場所を持っており、いつでもあなたのアプリがアクティブ辞任としてCLLocationManagerをオフにする必要があります。

-(void)appWillResignActive:(NSNotification*)notification 
{ 
    // pause GPS when not active to save battery 
    [locationManager stopUpdatingLocation]; 
} 

は、どこかの通知に登録、あなたのビューコントローラのように:

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(appWillResignActive:) 
    name:UIApplicationWillResignActiveNotification object:nil]; 
関連する問題