0

私のアプリケーションはiOS5で正常に実行されており、通常のユーザーの位置情報を取得します。しかし、iOS 6にアプリをインストールすると、アプリケーションはユーザーの場所を取得できません(許可の場所を尋ねるポップアップがなく、位置情報サービスではアプリのアイコンがありませInstagramPath。 iOSの位置情報サービスにあるアプリのアイコン6)。以下のコードを使用してこの問題を確認すると、次のようにNSlog表示されます。Unable to determine, possibly not available

なぜそうなのかわかりません。InstagramやPathのような他のアプリを試しました。通常のユーザーの場所は引き続き取得されます。私はiOS6の変更メソッドデリゲートをで勉強しましCLLocationManagerDelegateたが、私のアプリケーションはユーザーの場所を取得する許可を求めないので、それは理由ではないと思います。

if ([CLLocationManager locationServicesEnabled]) {
        NSLog(@"Location Services Enabled");
        switch ([CLLocationManager authorizationStatus]) {
            case kCLAuthorizationStatusAuthorized:
                NSLog(@"We have access to location services");
                break;
            case kCLAuthorizationStatusDenied:
                NSLog(@"Location services denied by user");
                break;
            case kCLAuthorizationStatusRestricted:
                NSLog(@"Parental controls restrict location services");
                break;
            case kCLAuthorizationStatusNotDetermined:
                NSLog(@"Unable to determine, possibly not available");
                break;
            default:
                break;
        }
    }
    else {
        NSLog(@"Location Services Are Disabled");
    }
4

2 に答える 2

1

私も同じ問題を抱えてる。私のアプリでは、locationServices が有効になっているかどうかを確認し、これが true の場合にのみ場所の更新を開始したため、この状況が発生しました ([self.locationManager startUpdatingLocation].)。

+ (BOOL)locationServicesEnabled {
    if (([CLLocationManager locationServicesEnabled]) && ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized)) {
        return YES;
    } else {
        return NO;
    } 
}

[self.locationManager startUpdatingLocation] チェックを付けなくても問題ないように見えますが、別の問題が発生する可能性があります。

于 2012-09-27T13:29:48.913 に答える
0

あなたの問題は、場所が利用可能かどうかを確認するだけで、使用しないことだと思います。したがって、iOS は使用されないため、許可を求めることはありません。チェックは正常に機能しています。

このようなチュートリアルを使用すると、うまくいきます。だから私はそれを解決しました!

于 2012-09-13T07:11:53.240 に答える