当应用为 killed/suspended 时,iOS 设备能否检测到 Eddystone 信标?

Can iOS device detect Eddystone beacon when app is killed/suspended?

我需要编写一个每次靠近 Eddystone 信标时调用 REST 服务的应用程序。 我的目标是 iOS 9 或更高并写成 Swift.

到目前为止,我已经设法让应用程序在应用程序处于前台和后台几个小时时响应来自信标的广告。 然后,应用程序在后台运行几个小时后,什么也没有发生。

我怀疑该应用已被 OS 杀死或暂停。

我尝试的第一件事是使用 CLLocationManager 和 CLBeaconRegion 进行地理围栏。 但是在谷歌搜索之后我发现这只适用于 iBeacon,而且我的信标肯定使用 Eddystone 协议。

根据 Apple 文档,iBeacon 上的地理围栏应该 "awake" 该应用程序,即使该应用程序已被杀死(被人类或 OS 杀死)..我可以有一个与 Eddystone 信标的类似行为?

我认为不是,但在这种情况下,我想要一个明确的答案:)

谢谢

顺便说一句,这个文档 https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html

有时会谈论 Beacons 和其他一些关于 iBeacons 的话题,所以不清楚这是否仅适用于 iBeacons。考虑到 UUID 的格式,我认为它确实如此,但是..

在监视 CLBeaconRegion 对象时,您可以使用 iOS CoreLocation API 将应用程序启动到后台进行信标检测。 这仅适用于 iBeacon,不适用于 Eddystone,因为 CoreLocation 仅检测 iBeacon。

要在 iOS 上检测 Eddystone,您必须使用不提供此功能的 CoreBluetooth API。

一种常见的方法是使用交织 Eddystone 和 iBeacon 的信标。使用 iBeacon 启动您的应用程序,使用 Eddystone 进行进一步处理。