【问题标题】:Waking up a killed app using didEnterRegion and then scanning for iBeacon使用 didEnterRegion 唤醒一个被杀死的应用程序,然后扫描 iBeacon
【发布时间】:2016-05-04 15:01:10
【问题描述】:

我的项目包括为房子的每个房间安装一个 iBeacon。 当用户进入房子时,我的应用程序执行扫描过程以检测实时看到的 iBeacon(UUID、Major 和 Minor)以及 iBeacon 的 RSSI 信号最强。如果最强信号持续 10 秒,那么我的应用就会知道用户在哪个房间,并将其显示为通知。

即使 iPhone 被锁定或应用程序被终止,我也需要在后台模式下执行此过程。

使用 didEnterRegion,我可以唤醒我的应用几秒钟以执行操作。 但是,我的扫描过程(我上面描述的)必须保持超过几秒但少于

这是一种使用 CoreBluetooth Scan 执行我想做的事情的方法吗? CoreLocation 不能给我 RSSI 信号来做过滤过程,对吗?

谢谢你,

格雷格

【问题讨论】:

    标签: ios iphone bluetooth-lowenergy ibeacon core-bluetooth


    【解决方案1】:

    通过在监控的同时打开测距,您可以使用 CoreBluetooth 做您想做的事。这将为您提供每秒一次的每个可见信标的 RSSI 读数,在第一次检测后最长持续 3 分钟。详情请看这里:

    http://developer.radiusnetworks.com/2014/11/13/extending-background-ranging-on-ios.html

    CoreBluetooth 不会帮助您,因为它不允许您检测 iBeacons - Apple 会阻止这种使用。

    【讨论】:

    • “CoreBluetooth 帮不了你” 你说的是 CoreLocatlion 吗?
    • 3分钟监控结束后,是否可以再转3分钟?
    • 不,我的意思是 CoreBluetooth 无法检测到 iBeacon 广告。在 iOS 上只有 CoreLocation 可以。在后台测距三分钟后,您无法再次打开它,直到发生以下情况之一:(1)您的应用程序被带到前台,(2)您获得 CLBeaconRegion 的监控条目回调(3)您获取 CLBeaconRegion 的监控退出回调。
    • @davidyoung 当您谈论 CLBeaconRegion 的入口回调时。信标由 UUID、Major 和 Minor 定义。这是否意味着 iOS 我可以再次监视 3 分钟,因为发现了其他主要或次要?或者它必须是一个新的 UUID ?
    • 可以是任何CLBeaconRegion。如果你设置了一个带有 UUID/major/minor 的区域,然后进出它,3 分钟时钟又开始了。
    猜你喜欢
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 2020-10-23
    • 1970-01-01
    • 2018-01-16
    • 2020-08-22
    相关资源
    最近更新 更多