iOS8如何更改位置与设置和警报交互?

时间:2014-12-03 05:44:51

标签: ios iphone gps settings cllocationmanager

我正在将iOS7背景位置iPhone应用程序转换为iOS8,并设法让LocationManager使用本网站上的许多建议再次提供坐标。

我只对requestAlwaysAuthorization而不是requestWhenInUseAuthorization感兴趣。

但是,我无法让iOS提示用户使用位置服务的许可,我想知道在某些情况下是否应该这样做。

有人可以回答以下问题:

  1. 如果我的隐私/位置服务/“我的应用”设置为“从不”,这是否会阻止应用接收GPS坐标,除非该应用专门指示用户更改该设置? (如果隐私/位置服务/“我的应用”设置为“始终”,我似乎只会收到坐标)

  2. iOS是否会提示用户专门授权GPS使用(就像以前的iOS版本一样)?在什么情况下?如果不是,我认为该应用必须引发合适的UIAlert,以引导用户更改隐私/位置服务/设置,以响应didChangeAuthorizationStatus返回状态:kCLAuthorizationStatusNotDetermined

  3. UIApplicationOpenSettingsURLString可用于将用户发送到此应用的设置页面。但是,这不显示隐私/位置服务/“我的应用程序”页面,如果当前设置阻止返回坐标,则用户需要更改该页面。是否有不同的方式以编程方式将用户直接引导至此应用的隐私/位置服务/“我的应用”页面?

  4. 非常感谢您的协助

    罗伯特

1 个答案:

答案 0 :(得分:0)

  1. 是的,一旦设置为“never”,iOS就不会提示用户提供权限 - 他们已经给出了答案而且“是”。您可以在应用中显示警报,要求他们将其打开,但如果您经常这样做,就会变得烦人。

  2. 第一次应用程序调用{​​{1}} / requestWhenInUseAuthorization时会显示警报。如果用户拒绝提供位置访问权限,则隐私设置将设置为“从不”,并且您处于问题1中描述的情况。如果授予了权限,则隐私设置将设置为“在使用中”或“始终”。每次应用运行时,您都应该致电requestAlwaysAuthorization / requestWhenInUseAuthorization

  3. 无法直接从您的应用中打开隐私/位置设置屏幕。