objective-c – CoreBluetooth – 在设备锁定时发现BLE外设
我注意到,当设备处于背景中时,BLE外围设备的发现似乎表现出不同(在中央侧),与在后台锁定时相比.
有人可以确认这一点或指向我更多的信息/文件吗? 更具体一点 – 当我的应用程序(中央)转换到后台和主屏幕时,它会继续按预期发现外围设备,但是当我按下“睡眠/唤醒”按钮从而锁定设备时,它会停止发现我的外围设备.该应用程序没有崩溃或任何事情……事实上,当我解锁设备(返回主屏幕)时,它恢复发现外围设备而无需将其恢复到前台.我也明白,BLE在后台不太频繁地被触发,但在我的情况下,我在锁定状态下观看它超过一个小时并且它从未触发发现,但是一旦我解锁它就恢复正常. 我正在寻找一种解决方案,当设备(作为中央运行)被锁定时,我也能够发现外围设备. 谢谢你的帮助! -H 更新中… 发现了一篇有趣的帖子,我想分享:http://web.archiveorange.com/archive/v/lBeBkjSSTe5jAan6ufTX 特别是观察(Brian Fudge)很有意思……
解决方法
好吧,我遇到了同样的问题,并设法理解为什么.所以基本上当你在后台或设备被锁定时,你的应用程序将只能发现一次设备(你可以在前台获得多个发现,标志为CBCentralManagerScanOptionAllowDuplicatesKey,但在背景中忽略它)
所以我的应用程序发现没有问题任何BLE外围设备在后台,但一旦我锁定我的设备,我无法检测到它们.我发现外围设备的广播包太大了(它发送了2次).减少我的外围广播包似乎解决了这个问题.当锁定时,iPhone似乎一次收听广告包.在前台或后台,它能够监听2次发送的数据包. 希望这可以帮助别人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |