繁体   English   中英

BLE:通过后台iOS广告本地名称和服务UUID

[英]BLE: Advertising local name and service UUID from background iOS

根据iOS文档,当将BLE作为外围设备的iOS应用程序移至后台模式时,不会通告外围设备名称,并且所有服务UUID都放置在特殊的“溢出”区域中,它们只能由以下设备的iOS设备发现:明确扫描它们。

当应用程序处于后台时,我会嗅探通过空中发送的BLE数据包。 没有本地名称和服务UUID数据。 有一个“溢出”区域,对服务UUID进行编码。 可以在这里找到简短的讨论: https : //github.com/crownstone/bluenet-ios-basic-localization/blob/master/BROADCASTING_AS_BEACON.md

我想知道是否有任何方法可以根据“溢出”区域中的数据确定正在发布的实际服务UUID。 iOS文档指出,当某个应用在后台作为BLE外围设备做广告时,另一个iOS应用可以通过显式指定要扫描的服务UUID来找到它。 因此,必须有一种方法可以从溢出数据中找出实际的UUID。

关于此的任何指示将是有帮助的。

不会。溢出区域中的数据被散列(发送几个128位UUID对于广告包来说太大了)。 我不相信哈希是有记载的,但是我强烈怀疑它是基于Bloom过滤器的,因此Apple可以将无限数量的UUID概率打包到非常有限的广告包空间中。

所有这一切的好处是,它意味着数据不在广告包中(实际上是不会)。 您将需要连接到设备以发现其服务。

暂无
暂无

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

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