我对定位服务的选择感到困惑。三个选项分别是“始终”和“从不”以及“在使用应用程序时”。
最初,我以为“在使用应用程序时”是指在前台使用该应用程序时。
“始终”是指在前景或背景中使用它。
但这document
某些应用程序仅在使用过程中才会要求使用您的位置。 当您在应用中积极使用某个应用时,该应用被视为“正在使用” 前景,或在后台使用时,其状态 栏将指示。
其他应用程序也会要求访问您的位置,即使该应用程序 未使用。当您允许某个应用始终使用您的位置信息时,iOS 会提醒您应用后哪些应用可以使用您的位置信息 在后台使用您的位置。
令人困惑。那么“始终”与“在使用应用程序时”有什么区别?
答案 0 :(得分:3)
Always
和When-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测距,标题服务,地理编码服务。
当应用程序使用我们的位置时显示蓝条。
始终授权:
当我们需要访问位置时使用这种类型的授权 在背景,前景,杀死和暂停状态下。 (跟踪Fitbit和Capchur之类的应用程序)
这种类型的授权支持所有类型的位置服务,例如标准位置服务, iBeacon测距,标题服务,地理编码服务, 重大更改位置服务,访问服务和区域 监视。
当应用程序使用时,在状态栏中仅显示小位置服务箭头 我们的位置。