0

当特定位置有大量信号时,Android 如何优先处理传入的蓝牙 4.0 消息?当一个区域有很多信标消息时(一群佩戴 Fitbit 设备的人群等),Android 似乎会根据特定标准处理一些传入的 ble 消息,而忽略其余消息。这似乎比 Android 开发框架允许我们访问的优先级更低。在拥挤的空间中使用放大的信标信号进行各种测试,iPhone 似乎并没有以相同的方式运行。

4

2 回答 2

2

我怀疑行为上的差异是基于 BLE 芯片组的实现,而不一定是任何有意识的设计,更不用说 BLE 规范了。您可能会发现,即使在 iOS 设备型号(使用不同的芯片组)之间以及在更加分散的不同 Android 型号之间,行为也会有所不同。

对这个问题的任何实际有用的答案都可能基于特定设备型号的特定测试条件,而不是确定的通用答案。

诚然,这都是基于我所做的大量测试的推测。只有在没有其他人提供更好和更具体的答案的情况下,我才提供它。

于 2017-10-29T19:33:42.330 回答
2

据我所知,没有“优先级”。蓝牙芯片在扫描到主机时只是将它们在空中抢购的内容转发给主机。

您需要记住的是广告间隔。一个比另一个更频繁地发送广告的设备当然更有可能被检测到。此外,如果两个设备在完全相同的时刻发送一个广告包并且信号强度相等,我猜接收器只会得到垃圾并丢弃数据包。

请注意,Android 使用“主动扫描”,这意味着它会在应用程序收到通知之前等待广告数据包和扫描响应数据包。为了获得扫描响应数据包,它必须在收到广告数据包后立即发送扫描请求,然后广告商立即发送扫描响应数据包。现在标准定义了一个退避机制,如果失败,可能会在不同的控制器中以不同的方式实现,因此不同控制器的最大差异可能是由于这一点。

于 2017-10-29T23:07:08.027 回答