0

私はこの技術に非常に慣れていないので、助けてください。

私はCLLocationManagerを使用して現在の場所を取得しています。アプリケーションには、現在の場所を許可したかどうかを示すステータスを示すカスタム設定があります。つまり、書き込み時にデフォルトで表示されるメッセージプロンプトです。

[self.locationManager startUpdatingLocation];

ユーザーがそのメッセージプロンプトを許可しないでタップし、アプリケーションのカスタム設定に戻り、場所を取得するためのボタンをオフに変更すると、ユーザーの現在の場所を取得できますか.

これはどのように実装できますか?

4

2 に答える 2

15

アプリの位置情報サービスがユーザーによって拒否されると、一般設定でのみオンに戻すことができます。そのため、そこに送信するようにユーザーに伝えてください。(UIAlertView を使用して最初に通知することをお勧めします。)

// If Location Services are disabled, restricted or denied.
if ((![CLLocationManager locationServicesEnabled])
    || ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusRestricted)
    || ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied))
{
    // Send the user to the location settings preferences
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"prefs:root=LOCATION_SERVICES"]];
}
于 2012-05-14T16:52:11.327 に答える
0

あなたの質問に対する短い答えは「YES」です。ユーザーが設定を通じてアプリの位置情報サービスを有効にすると、プロンプトに対してユーザーが「はい」と答えたかのようになります。コードで認証ステータスを確認することにより、アプリで位置情報サービスが有効になっているかどうかを確認できます。

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized) 
{
    //Get user's current location


}
于 2012-05-14T15:15:12.133 に答える