Ahi*_*Das 8 ios core-bluetooth bluetooth-lowenergy android-bluetooth ios-bluetooth
当一个 iOS BLE 外围设备进入后台状态时,广告数据包不会以常规方式发出,它们被放置在一个特殊的“溢出”区域,只有另一个 iOS 设备明确寻找该设备才能检测到该区域。
也就是说,您应该知道,当您的应用程序在后台时,广告的运作方式与您的应用程序在前台时的运作方式不同。特别是,当您的应用在后台投放广告时:
• CBAdvertisementDataLocalNameKey 广告键被忽略,并且外围设备的本地名称不被广告。
• 包含在CBAdvertisementDataServiceUUIDsKey 广告键值中的所有服务UUID 都放置在一个特殊的“溢出”区域中;它们只能被明确扫描它们的 iOS 设备发现。
Android 中心(扫描仪)有什么方法可以检测任何广告的自定义 UUID,而无需连接到 iOS 外围设备?
对于“溢出”区域,我猜它们是指扫描响应数据。要获取该数据,设备必须执行主动扫描,而不是被动扫描。在主动扫描中,扫描器在检测到广告数据包后立即发送扫描请求数据包。广告设备仅在检测到扫描请求时才会广播扫描响应数据。
Android 设备仅执行主动扫描,因此应该没问题。
编辑:上面的答案不正确。请参阅http://www.davidgyoungtech.com/2020/05/07/hacking-the-overflow-area了解正确信息。
| 归档时间: |
|
| 查看次数: |
1746 次 |
| 最近记录: |