0

アプリで iPhone の位置データを取得しようとしていますが、何らかの理由でブロックにヒットkclAuthorizationStatusNotDeterminedし続けます。switch

シミュレーターで位置情報サービスが有効になっているという事実を知っておりCLLocationManager、ヘッダーファイルで宣言されているため、存在することがわかります。

私のコードは以下の通りです:

if ([CLLocationManager locationServicesEnabled])
{
    //check if this app is allowed to access geolocation
    switch ([CLLocationManager authorizationStatus])
    {
        case kCLAuthorizationStatusNotDetermined:
            // do something
            NSLog(@"Status not determined");
            break;

        case kCLAuthorizationStatusDenied:
            //do something
            NSLog(@"Status denied");
            break;

        case kCLAuthorizationStatusRestricted:
            //do something
            NSLog(@"Status restricted");
            break;

        case kCLAuthorizationStatusAuthorized:
            [manager startUpdatingLocation];
            CLLocation *currentCoords = [manager location];
            NSString *location = [currentCoords description];
            UIAlertView *gps = [[UIAlertView alloc]
                                initWithTitle:@"Current Location" message:location delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
            [gps show];
            //getHails or getDetails();
            break;
    }
}

何か不足していますか?事前にご協力いただきありがとうございます

4

1 に答える 1

1

Appleの DocによるkCLAuthorizationStatusNotDeterminedと、「ユーザーは、このアプリケーションが位置情報サービスを使用できるかどうかをまだ選択していません」という意味です。アプリで位置情報サービスが有効になっているが、デバイスでオンになっていないなど、位置情報サービスに別の障害がある場合に発生する可能性があると主張する他の情報源を見てきました.

位置情報サービスがオフになっている場合、またはアプリで有効になっていない場合、iOS は通常、ユーザーにプロンプ​​トを表示します。さらに、ユーザーが以前にアプリへの位置情報サービスを拒否していたにもかかわらず、プログラムで位置情報サービスを開始した場合、ユーザーはそれらをオンにするように求められると思います. その動作または何か違うものを見ていますか?

明確にするために、位置情報サービスがオンになっていると言うとき、位置情報サービスがグローバルにオンになっていることと、特定のアプリで有効になっていることの両方を確認しましたよね?

シミュレーターでアプリを実行する場合、再インストールする前にシミュレーターからアプリを完全に削除すると、設定バンドルが削除されることがあります。これにより、アプリの位置情報サービスのアプリ レベルの承認に関する保存済みの状態が再初期化されます。

編集:

位置情報サービスを有効にするように促すポップアップが表示されない場合は、電話をかけていないように思えます[<your location manager instance> startUpdatingLocation]。あなたはそれが呼び出されていると確信していますか?

于 2012-09-24T21:01:51.790 に答える