正如iOS文档所述,当使用BLE作为外围设备的iOS应用程序移动到后台模式时,本地名称不会被广告,并且所有服务UUID都被放置在溢出区域。文档指出,它们只能被iOS设备发现。
我的总体问题是,在更低的级别上,这究竟是如何发生的。使用非iOS蓝牙数据包嗅探器,我检查了我的iOS外围应用程序在前台和后台模式下的广告数据结构。前台模式下的广告数据结构看起来与预期相同,类似于来自Android设备的其他广告数据。
当iOS应用程序处于后台模式时,此结构会发生变化,并且服务UUID不明显。我没有看到任何暗示“溢出”区域的内容。
如果UUID不是广告数据包的一部分,iOS中央设备如何发现处于后台模式的外围设备?
我的总体问题是,在更低的级别上,这究竟是如何发生的。使用非iOS蓝牙数据包嗅探器,我检查了我的iOS外围应用程序在前台和后台模式下的广告数据结构。前台模式下的广告数据结构看起来与预期相同,类似于来自Android设备的其他广告数据。
当iOS应用程序处于后台模式时,此结构会发生变化,并且服务UUID不明显。我没有看到任何暗示“溢出”区域的内容。
如果UUID不是广告数据包的一部分,iOS中央设备如何发现处于后台模式的外围设备?
scanForPeripheralsWithServices:options
方法中作为选项指定的CBCentralManagerScanOptionSolicitedServiceUUIDsKey
键很好奇,想知道这是否是用于在该模式下传递服务UUID以发现外围设备的方式。 - Marcus Adams