4

私のアプリでは、ユーザーが現在地へのアクセスを許可されていない場合、次の方法でそのメッセージを受け取ることができます

- (void)locationManager:(CLLocationManager*)aManager didFailWithError:(NSError*)anError
{
    switch([anError code])
    {
       case kCLErrorLocationUnknown: 
        break;

        case kCLErrorDenied:
        {
           UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Access Denied" message:@"You didn't allow to access your current location" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
            [alert show];
          break;
        }
    }
 }

2回目のユーザー許可を求める方法は?

検索して「いいえ」と答えました。ユーザーがアプリに自分の場所にアクセスしてもらいたい場合、現在の場所を使用するようにアプリを設定するにはどうすればよいですか。

アプリを削除して別のアプリをダウンロードすることが唯一の解決策ですか?

4

5 に答える 5

4

これは私だけですか、それとも何ですか?このようないくつかの質問があります。それぞれは、プログラマーがその貴重な一貫したアラートを取得するために行うべきことではなく、ユーザーが位置情報サービスを再度有効にするために行うべきことによって答えられます。

電話

[singleton.locationManager startUpdatingLocation];

それが実際にアラートをポップするものです。

電話をかけないと、アラートは表示されません。

最初に有効になっているかどうかを確認してから、有効になっている場合にのみ呼び出すと、アラートは表示されません。

私はこれを理解するのに何週間も費やしました。インターネットにはこれについての情報はまったくありません。

于 2013-04-21T21:57:51.030 に答える
3

私はイエスと思う。アプリを削除して別のアプリをダウンロードすることが唯一の解決策です。位置設定にアクセスするためのユーザーの許可を求めるアラートメッセージは、アプリではなくiPhone OSによって発生するため、プログラムで確認することはできません。

于 2013-03-26T07:08:31.863 に答える
2

デバイスの[設定]->[位置情報サービス]タブから位置情報サービスをオンにできると思います。下の画像を参照してください

ここに画像の説明を入力してください

更新: アプリの位置情報サービスがオフの場合、位置情報マネージャーはエラーコードkCLErrorDeniedでエラーを発生させ、設定から位置情報サービスをオンにするようユーザーにアラートを表示できます。

または、次のコードも使用できます

if (![CLLocationManager locationServicesEnabled])
于 2013-03-26T07:02:59.710 に答える
0

デバイスの[設定]->[プライバシー]->[場所]で場所を手動でリセットしてから、アプリを再起動できます。

于 2013-03-26T07:16:54.030 に答える
0

これはユーザーが行う必要があります。

iOS 7の場合:[設定]->[一般]->[制限]->[そうでない場合はオンにする]->[プライバシー保護中]-位置情報サービス

于 2013-10-02T20:53:42.520 に答える