将 requestAlwaysAuthorization 更改为 requestWhenInUseAuthorization 不起作用
Changing requestAlwaysAuthorization to requestWhenInUseAuthorization not working
我的应用曾经使用 requestAlwaysAuthorization
和 NSLocationAlwaysUsageDescription
的 Info.plist 条目。
我将其更改为使用 requestWhenInUseAuthorization
和 NSLocationWhenInUseUsageDescription
的 Info.plist 条目。
更改后应用无法再获取位置。它只收到 kCLAuthorizationStatusNotDetermined
的 didChangeAuthorizationStatus
。 OS 不会提示更改权限(这是有道理的,因为它已经拥有 always 的权限。应用程序的设置菜单不包含位置信息条目(这将允许我撤销或批准它). didFailWithError
永远不会被调用。
然后我切换回使用 requestWhenInUseAuthorization
和 NSLocationWhenInUseUsageDescription
的 Info.plist 条目并重新启动应用程序。 OS 提示将权限更改为始终。我授予它,该位置开始完美运行。
在重新安装之前删除该应用程序没有任何效果。
我正在使用 IOS 9.2。这发生在真实 iPhone 和模拟器上。我将模拟器的位置设置为 Apple。
位置管理器在模拟器上可能是一个真正的成功或失败,至少对我来说,有时它运行良好,有时则不然。您是否在设备上尝试过 运行?
我的应用曾经使用 requestAlwaysAuthorization
和 NSLocationAlwaysUsageDescription
的 Info.plist 条目。
我将其更改为使用 requestWhenInUseAuthorization
和 NSLocationWhenInUseUsageDescription
的 Info.plist 条目。
更改后应用无法再获取位置。它只收到 kCLAuthorizationStatusNotDetermined
的 didChangeAuthorizationStatus
。 OS 不会提示更改权限(这是有道理的,因为它已经拥有 always 的权限。应用程序的设置菜单不包含位置信息条目(这将允许我撤销或批准它). didFailWithError
永远不会被调用。
然后我切换回使用 requestWhenInUseAuthorization
和 NSLocationWhenInUseUsageDescription
的 Info.plist 条目并重新启动应用程序。 OS 提示将权限更改为始终。我授予它,该位置开始完美运行。
在重新安装之前删除该应用程序没有任何效果。
我正在使用 IOS 9.2。这发生在真实 iPhone 和模拟器上。我将模拟器的位置设置为 Apple。
位置管理器在模拟器上可能是一个真正的成功或失败,至少对我来说,有时它运行良好,有时则不然。您是否在设备上尝试过 运行?