ios CBCentralManager DidDiscoverPeripheral

时间:2014-04-10 23:57:11

标签: ios core-bluetooth

iOS CoreBluetooth中是否有一种机制,以便在发现(但未连接)的外围设备丢失时触发事件"即广告的外围设备不再是广告。

2 个答案:

答案 0 :(得分:1)

您可以在CBCentralManagerScanOptionAllowDuplicatesKey:YES CBCentralManager的选项中指定scanForPeripheralsWithServices:,然后保留一个观察设备表,定期老化这些条目,但这会影响电池续航时间和您一旦您的应用程序不再位于前台,将无法运行。连接是一个更好的选择 - 你有什么理由不想连接到设备吗?

答案 1 :(得分:1)

您可以查看AltBeacon,这是我们发布的一个开源项目https://github.com/CharruaLabs/AltBeacon我们是如何做到这一点的。检查方法reportDelegates类AltBeacon.m

更详细一点。我们这样做是为了在预先建立的时间间隔内保持报告,然后对设备的信号(RSSI)进行老化。过了一段时间,如果它太老了,你可以触发不再广告回调。我们所做的只是将枚举状态距离更改为未知。