位置情報サービスのオン/オフについてメモ

iPhoneでアプリの位置情報サービスをオン/オフするには2つあるけど、それぞれ判別方法が違うっぽかったのでメモ。

[設定]-[位置情報サービス]の[位置情報サービス]

こちらでオフされている場合は、CLLocationManagerの+locationServicesEnabledがFALSEを返すのでわかりやすい。

[設定]-[位置情報サービス]の各アプリケーション

こちらでオフされている場合は上記クラスメソッドはTRUEを返すようになっているようなので、

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error;

でエラー処理を書かないといけない。

If the user denies your application’s use of the location service, this method reports a kCLErrorDenied error. Upon receiving such an error, you should stop the location service.

CLLocationManagerDelegate Protocol Reference

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
switch (error.code) {
case kCLErrorDenied: {
// アプリが個別に位置情報サービスを無効にされている
break;
}
default:
break;
}
}

例えばこんな感じかしら。

スポンサーリンク

シェアする

フォローする

スポンサーリンク