iOS位置服务中“始终”和“使用应用时”之间的区别

时间:2019-06-17 22:07:41

标签: ios

我对定位服务的选择感到困惑。三个选项分别是“始终”和“从不”以及“在使用应用程序时”。

最初,我以为“在使用应用程序时”是指在前台使用该应用程序时。

“始终”是指在前景或背景中使用它。

但这document

  

某些应用程序仅在使用过程中才会要求使用您的位置。   当您在应用中积极使用某个应用时,该应用被视为“正在使用”   前景,或在后台使用时,其状态   栏将指示。

     

其他应用程序也会要求访问您的位置,即使该应用程序   未使用。当您允许某个应用始终使用您的位置信息时,iOS   会提醒您应用后哪些应用可以使用您的位置信息   在后台使用您的位置。

令人困惑。那么“始终”与“在使用应用程序时”有什么区别?

2 个答案:

答案 0 :(得分:3)

AlwaysWhen-in-use之间的主要区别在于:如果您使用的是SELECT T1.AppId AS APP_ID , CASE WHEN T1.PhoneTYpeID = 1 THEN T1.PhoneTYpeId ELSE NULL END AS Phone_Type_Id , CASE WHEN T1.PhoneTYpeID = 1 THEN T1.PhoneNumber ELSE NULL END AS Phone_No , (SELECT Id FROM T2 WHERE Id = 1) AS T2_ID , (SELECT Description FROM T2 WHERE Id = 1) AS T2_DESCR FROM T1 json_decode,则您的应用被杀死(由用户或操作系统终止),则您的应用将停止接收CoreLocation服务更新。只要您的应用程序处于前台和后台,只要您启用了后台定位功能,您的应用程序都将收到更新。先前的权限将启动您的应用程序,即使它不在内存中。

您可以阅读更多on this developer documentation page。这是Apple开发人员文档的摘录:

  

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

     

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

答案 1 :(得分:0)

使用中授权:

  

当我们需要访问位置时使用这种类型的授权   仅在背景和前景模式下使用。 (基于位置的建议应用程序,例如许多电子商务应用程序)

     

这种类型的授权仅支持标准位置服务,   iBeacon测距,标题服务,地理编码服务。

     

当应用程序使用我们的位置时显示蓝条。

始终授权:

  

当我们需要访问位置时使用这种类型的授权   在背景,前景,杀死和暂停状态下。 (跟踪FitbitCapchur之类的应用程序)

     

这种类型的授权支持所有类型的位置服务,例如标准位置服务,   iBeacon测距,标题服务,地理编码服务,   重大更改位置服务,访问服务和区域   监视。

     

当应用程序使用时,在状态栏中仅显示小位置服务箭头   我们的位置。