【问题标题】:Can iOS device detect Eddystone beacon when app is killed/suspended?当应用程序被杀死/暂停时,iOS 设备可以检测到 Eddystone 信标吗?
【发布时间】:2017-10-17 15:24:56
【问题描述】:

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

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

我怀疑应用程序被操作系统杀死或挂起。

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

根据 Apple 文档,iBeacon 上的地理围栏应该“唤醒”应用程序,即使应用程序已被杀死(无论是被人还是被操作系统杀死).. 我可以对 Eddystone 信标有类似的行为吗?

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

谢谢

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

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

【问题讨论】:

    标签: ios swift ibeacon geofencing eddystone


    【解决方案1】:

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

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

    执行所需操作的常用方法是使用将 Eddystone 和 iBeacon 交错的信标。使用 iBeacon 启动您的应用,使用 Eddystone 进行进一步处理。

    【讨论】:

    • 您能否指出一份 Apple 官方文档,该文档明确指出只有 iBeacon 才能将应用程序从睡眠/死机状态唤醒?上面的文件对非技术人员来说有点模糊,我需要一个给客户看:)
    • 抱歉,我确定不存在此类文档。 (不幸的是,你很难找到任何关于谷歌技术的参考,比如 Eddystone n Apple 文档——他们喜欢假装它不存在。)但是,我可以告诉你,我与谷歌的设计工程师讨论了这个确切的问题在 Eddystone 项目发布之前,我们同意上述解决方案是使用 Eddystone 在 iOS 上获得后台启动的方式。
    • 谢谢!!我会相信你的话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多