我正在尝试在后台扫描具有32位UUID的服务。
相同的代码与前台和后台的128位UUID一样正常工作。
只有在应用程序位于前台时,才能扫描32位UUID。
是否有限制表明UUID必须是128位?
答案 0 :(得分:2)
蓝牙4.1中引入了对LE模式下32位UUID的支持(参见修订历史BLUETOOTH SPECIFICATION Version 4.1 [Vol 0])。至于Apple:他们从未宣布更新CoreBluetooth以支持它(例如CBUUID文档提到蓝牙4.0规范)。简而言之:是的,它们必须是16位或128位才能确定。
至于原因:根据我的经验,iOS在后台扫描时非常挑剔。即他们有时只进行被动扫描。因此,根据您的BLE外设如何将广告数据拆分为ADV_IND和SCAN_RSP数据包,您可能会看到32位UUID。我建议你用BLE嗅探器查看广告数据(以及它如何分成数据包)。