CoreLocation框架详细解析 —— 选择定位服务的授权级别(二)

版本记录

版本号 时间
V1.0 2017.11.25

前言

很多的app都有定位功能,比如说滴滴,美团等,他们都需要获取客户所在的位置,并且根据位置推送不同的模块数据以及服务,可以说,定位方便了我们的生活,接下来这几篇我们就说一下定位框架CoreLocation。感兴趣的可以看我写的上面几篇。
1. CoreLocation框架详细解析 —— 基本概览(一)

选择定位服务的授权级别

您请求的授权类型(“when-in-use”“always”)决定应用程序可以访问哪个位置以及何时可以使用它们:

1. When-in-use authorization

您的应用可以使用大多数服务,但不能使用自动重新启动应用的服务。 您的应用必须始终在前台运行时启动服务。 如果您为应用启用后台定位功能,则会在后台唤醒已暂停的应用以处理定位事件。 但是,如果您的应用程序未运行,则不会启动。

2. Always authorization

您的应用可以使用所有位置服务,并且可以从前台或后台启动这些服务。 如果您的应用程序未运行时发生与位置相关的事件,系统将启动您的应用程序并发送该事件。

建议您只要在可能的情况下请求When-in-use authorization授权。 如果您的应用程序请求并接收When-in-use authorization授权,则可以稍后为总是授权提出单独的请求。 (应用程序只能请求一次授权。)即使您请求Always authorization,用户也可以选择进行When-in-use authorization授权。 因此,您必须随时准备When-in-use authorization授权。

重要提示:始终在您实际计划使用位置服务的位置请求授权以执行任务。 请求授权可能会向用户显示警报。 如果用户不清楚为什么您的应用正在使用位置服务,则用户可能会拒绝您的请求。

表1列出了可用于每种授权的位置服务。

CoreLocation框架详细解析 —— 选择定位服务的授权级别(二)_第1张图片
Table 1 Authorizations supported by the location services

在发出授权请求之后,在请求解决之前启动位置服务是安全的。 但是,在授权状态更改为kCLAuthorizationStatusAuthorizedAlwayskCLAuthorizationStatusAuthorizedWhenInUse之前,位置服务不会传递任何数据。 在您的location manager代理中实施locationManager:didChangeAuthorizationStatus:方法,以在您的应用程序的授权状态更改时得到通知。


Requesting Authorization - 请求授权

  • Requesting When-In-Use Authorization

    • 仅当您的应用程序正在运行时请求授权才能使用位置服务。
  • Request Always Authorization

    • 随时请求授权使用位置服务。

后记

未完,待续~~~

CoreLocation框架详细解析 —— 选择定位服务的授权级别(二)_第2张图片

你可能感兴趣的:(CoreLocation框架详细解析 —— 选择定位服务的授权级别(二))