2016-09-02 12 views
1

私のアプリは2レベルのLocationHandlerステータスを持つことができます。まず、requestWhenInUseAuthorizationを起動し、ユーザーが特定の機能を有効にすると、requestAlwaysAuthorizationを起動します。requestWhenInUseAuthorizationが受け入れられた後のrequestAlwaysAuthorization

ユーザーがrequestAlwaysAuthorizationを拒否して機能が期待どおりに機能しないことを通知する必要がある場合は、通知する必要があります。問題はこの場合、承認ステータスが同じままであるため(AuthorizedWhenInUseであり、まだAuthorizedWhenInUse)、didChangeAuthorizationStatusが呼び出されていないことです。

AuthorizedWhenInUseを受け入れた後にユーザーがAuthorizedAlwaysを拒否した場合、どうすれば通知を受けることができますか?

答えて

2

iOS 10以降では、ユーザーが使用中に受け入れた場合でもrequestWhenInUseAuthorization()を呼び出した後、requestAlwaysAuthorization()を呼び出すことはできなくなりました。

以前のバージョン(少なくともiOS8)では、ユーザーは承認を「ステップアップ」し、ユーザーが使用中に受け入れた後に常に承認を求めることができます。これはもはや不可能です。

行うための最善のことは、たまに) をCLLocationManager.authorizationStatusを(チェックしUIApplicationOpenSettingsURLString

で正しい設定ページにユーザーを指してダイアログを表示しています
関連する問題