繁体   English   中英

iOS Android 无法检测到背景 BLE 广告

[英]iOS Background BLE advertising not detectable by Android

当 iOS BLE 外设进入后台 state 时,广告数据包不会以常规方式发出,它们被放置在一个特殊的“溢出”区域中,只有另一个 Z1BDF605991920DB11CBDF8508204CEB4 明确寻找此设备时才能检测到该区域。

蓝牙外设后台执行模式

也就是说,你应该知道,当你的应用程序在后台时,广告的运作方式与你的应用程序在前台时不同。 特别是,当您的应用在后台投放广告时:

• CBAdvertisementDataLocalNameKey 通告键被忽略,并且外围设备的本地名称不被通告。

• 包含在 CBAdvertisementDataServiceUUIDsKey 广告键值中的所有服务 UUID 都放置在一个特殊的“溢出”区域; 它们只能被明确扫描它们的 iOS 设备发现。

Android 中央(扫描仪)有什么方法可以检测任何广告的自定义 UUID 而无需连接到 iOS 外围设备?

对于“溢出”区域,我猜它们是指扫描响应数据。 要获取该数据,设备必须执行主动扫描,而不是被动扫描。 在主动扫描中,扫描器在检测到广告数据包后立即发送扫描请求数据包。 广告设备仅在检测到扫描请求时才会广播扫描响应数据。

Android 设备只执行主动扫描,所以你应该没问题。

编辑:上面的答案不正确。 有关正确信息,请参阅http://www.davidgyoungtech.com/2020/05/07/hacking-the-overflow-area

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM