[英]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.