現在、私のアプリケーションは、現在の場所を使用するための許可を1度だけ求めます。ユーザーが許可しない場合、彼は一般設定でロケーション警告をリセットしない限り、再度尋ねません。私は後でこの許可を与えるために、アプリ内からユーザーにチャンスを与えたいと思います。つまり、特定のボタンを押すとダイアログが再び表示されます。これは可能ですか?CLLocationは再度許可を求めます
ご協力いただきありがとうございます。
現在、私のアプリケーションは、現在の場所を使用するための許可を1度だけ求めます。ユーザーが許可しない場合、彼は一般設定でロケーション警告をリセットしない限り、再度尋ねません。私は後でこの許可を与えるために、アプリ内からユーザーにチャンスを与えたいと思います。つまり、特定のボタンを押すとダイアログが再び表示されます。これは可能ですか?CLLocationは再度許可を求めます
ご協力いただきありがとうございます。
新しい回答:iOSの8で今 あなたがプログラム的にデバイスの設定アプリで開くことができます。以前のiOSバージョンをサポートし、これを処理することができることを確認したい場合は、
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
を次の操作を行います。
旧回答: ネイティブポップアップを強制的に表示して(ユーザーが設定ページにジャンプできるようにする)方法がわかりません。
ユーザーがアプリの位置情報サービスを許可しているかどうかを判断するために、次のメソッドを使用することができます。 CLLocationManager:
+(CLAuthorizationStatus)authorizationStatus
ロケーションサービスをグローバルにデバイスレベルで有効かされていない場合にも見つけることができます、あまりにも: CLLocationManager:ロケーションサービスは、デバイス上で使用可能にしている場合
+(BOOL)locationServicesEnabled
これは部分的にのみ正確です。 locationServicesEnabledは、アプリのロケーション権限ではなく、デバイスの設定についてのみ通知します。 – Acey
[CLLocationManager locationServicesEnabled]
はちょうどあなたに伝えます。
thisによる。
[CLLocationManager authorizationStatus]
結果はあなたがsettings.appに彼を送信することにより、位置情報サービスの利用を許可するようにユーザーに伝えることができkCLAuthorizationStatusDenied
である場合には、これらの
typedef enum {
kCLAuthorizationStatusNotDetermined = 0,
kCLAuthorizationStatusRestricted,
kCLAuthorizationStatusDenied,
kCLAuthorizationStatusAuthorized
} CLAuthorizationStatus;
の1を返します
おそらくそうではありません。それは、ロケーションの警告をリセットする必要があるという点です。 – ryyst