iPhone 什么时候在状态栏中显示实心位置图标?

When does iPhone shows solid location icon in the status bar?

我正在开发一个应用程序来订阅用户的重要位置变化、访问变化和区域(地理围栏)变化。但是,我总是在状态栏中看到一个固定的位置图标。查看 "Privacy->Location Services" 设置,我发现最近我的应用程序和其他一些应用程序使用了该位置。

此外,一旦我将我的应用程序的位置权限设置为 'Never',状态栏中的位置图标就会消失。

我想知道对重要位置更改、访问和区域更改的订阅是否会导致 iOS 显示 Solid Location 图标。 我实际上在我的房间里坐了半天,因此 phone 没有改变位置,我不希望触发任何位置更改事件。 状态栏显示固定位置图标的具体情况是什么?

我读过this question,但我认为它是无关的。

我想涵盖您问题的所有方面,希望您不介意冗长的描述性回答。

权限级别:

从不 - 用户拒绝应用程序使用该位置的权限。

使用中 - 用户已授予该应用在使用中使用该位置的权限。这意味着在用户主动使用该应用程序时会授予该应用程序前台和位置访问权限。

始终 - 用户已授予应用在后台和前台使用该位置的权限。

主箭头表示位置使用:

电池电量指示器前右上角的箭头可以有两种颜色。

  1. 空心(轮廓线)- 表示 phone 上有应用程序使用地理围栏
  2. 实线箭头 - 表示有一个或多个应用程序主动使用 phone 的位置,包括 GPS。在前台和后台显示应用 运行 的实线箭头。

如果您的应用正在使用区域监控,它会获取进入和退出事件的委托回调。这通常意味着 phone 正在使用重大位置更改进行跟踪。对于区域监控,您无需显式注册即可接收位置更新,因为它全部由底层 API 处理。

实心箭头将持续显示,如果您有靠近 phone 的区域,我的观察范围可达 3KM。距离是不可预测的,很大程度上取决于 phone 的地理位置,但我注意到持续使用位置来触发区域,然后 OS 切换回基于显着变化的监控触发或 phone 已经移动了很多。如果不是这种情况,请检查 LocationManager 委托实现以确保应用没有更频繁地接收更新。

另一方面,如果您正在注册要通知的重大位置变化,那么只要位置更新传送到应用程序,就会显示实心箭头。

隐私设置中的实心紫色、实心灰色和带轮廓的紫色箭头显示在应用程序旁边,并在下面的屏幕截图中进行了描述。