1

重複の可能性:
CLLocation ask again for permission
位置情報サービスをオンにするようユーザーに促す方法…もう一度

ユーザーが「いいえ」と言った場合にプロンプ​​トを表示し続けるために、「現在の場所を使用する」というアラートが必要です。

現在、私が取り組んでいるアプリでは、ユーザーが「いいえ」と言った場合、プロンプトは二度と表示されません。ビューコントローラーに戻った場合にプロンプ​​ト/アラートを維持する方法を考えています。

助けてくれてありがとう

4

2 に答える 2

8

私はそれが一度だけ尋ねるように設計されていると確信しています(そして正当な理由で)。アプリで位置情報サービスが有効になっているかどうかを確認し、「位置情報サービスを有効にしてください...」などのメッセージを表示できます。

編集:位置情報サービスが有効になっているかどうかを確認できます

[CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized
于 2012-07-22T14:53:20.803 に答える
4

- (void)locationManager:didFailWithError:(NSError *)errorのようなメソッドを呼び出そうとすると、Corelocationmanager が起動しますstartUpdatingLocation。したがって、次のコードを使用して、ユーザーが位置監視を拒否したかどうかを確認できます。

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
      if([error code] == kCLErrorDenied){
        //Alert view
      }
}

場所の警告をリセットすることで、Corelocation アラートを再度有効にすることができます。[設定] > [一般] > [リセット] > [位置情報の警告をリセット] に移動します。また、アラートビューを追加して、ユーザーに設定アプリケーションに移動し、そこで場所の警告をリセットするように求めることもできます。アラート ビュー デリゲート内で次のコードを使用して、設定アプリケーションを開きます。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
于 2012-07-22T15:02:44.347 に答える