我希望找到哪些委托方法在终止时在后台连接/断开时可靠地触发。每当用户与我的BLE设备足够接近时,我希望它自动连接,然后启动快速方法与设备交换数据。
我似乎无法使用此用例可靠地触发任何委托方法。我有bluetooth-central
打开的后台模式,我有正确的代表正在使用,我编写的整个BT模块在应用程序处于活动状态或在任务切换器中工作得非常好。我只需要完成最后一个用例,应用程序即被终止。
我最初的计划是使用iBeacon,但这最终是一个有缺陷的方法来唤醒应用程序终止,因为我需要蓝牙配对保持并持续存在。让iBeacon背景/已终止事件(例如didEnterRegion
或didExitRegion
)触发的唯一方法是忘记此设备" (在iOS系统BT菜单中)应用程序与用户进行连接/配对阶段后。所以这不起作用,因为除非用户为我做这个,否则应用程序将永远无法从设备取消配对(我甚至尝试在框中的AT +命令擦除身份验证/绑定并断开连接)。
所以......现在我唯一的计划就是找到一种让iOS系统重新连接时触发centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
和didDisconnectPeripheral
方法的方法。因此,当设备开启或用户接近足够接近范围时。
答案 0 :(得分:0)
我终于找到了答案!可靠的方法绝对是iBeacon ...我认为我无法使用,因为我正在使用蓝牙配对连接,并且当您的设备连接时,iBeacon不会被广告。这是" sorta"因为你无法从已经连接到其他东西的设备上检测出iBeacon输出这一事实是正确的...直到最近我还没有想到建立一块有2个蓝牙芯片的电路板!
我所做的是使用一个BT芯片作为专用iBeacon游侠,以更稳定可靠的方式唤醒应用程序,另一个芯片用于专用BT连接/配对/授权/保持状态。现在,我可以在设备中使用加密的自定义特性,并让设备在终止或睡眠后唤醒我的应用程序! :)
Here is an article我提出了类似的问题并回答了问题。