7

我有问题。我正在开发一个扫描无线接入点/路由器的安卓应用程序。我一直在测试几个设备,我得到的扫描速率是每秒 2、1、0.5、0.1 等扫描。

我的目标是达到每秒 10 次扫描,因为路由器每秒可以发送 10 次信标。我们的应用程序需要这个。

有没有办法让这成为可能?也许破解一个rom并更换wifi驱动程序?我一直在寻找这个,但我在司机里面找不到任何关于这个常客的信息。

使用的驱动程序是 BCM4329 驱动程序,我找不到 BCM4329 的任何数据表,所以很难弄清楚这一点。

提前致谢。弗利杰斯

4

4 回答 4

0

如果您使用 4339 驱动程序,则无法在驱动程序或 android api 中设置扫描速率,这在 4339 固件中是固定的,扫描是关于所有通道 && 您在每个通道上花费的时间,根据 80211 规范,它是 mac && 的一部分物理。在这种情况下,您只需要获取信标,因此您应该使用被动扫描并使用您想要的固定频道 && MaxChannelTime。

您必须向 Broadcom 索取特殊固件才能解决您的问题,

IEEE Std 802.11-2012 第 978 页 10.1.4.2 被动扫描 如果 ScanType 参数指示被动扫描,则 STA 应在不超过 MaxChannelTime 参数定义的最大持续时间的时间内侦听每个扫描通道。

于 2014-08-13T08:52:53.833 回答
0

我不熟悉驱动程序开发,但我知道这是计算机科学中最难的事情之一,所以除非你对 Linux 内核开发有很好的了解,否则我会忘记它。

此外,您仍然需要扫描 12 个 Wi-fi 频道,以确保您正在检测所有接入点。接入点每 100 毫秒 * 12 个频道 = 1.2 秒广播一个信标。花比这更少的时间,您可能会丢失接入点。

于 2012-03-30T00:08:04.597 回答
0

您认为信标速率为每秒 10 次的假设是不正确的。这实际上是一个 AP 配置参数,尽管大多数情况下默认为每秒 10 个。除此之外,AP 不会同时发送信标,如果发生这种情况,则称为冲突,并且使用退避算法进行重传。此外,即使每秒扫描 10 次也不能确定您可以捕获所有信标,就像前面的答案中指出的那样。

于 2012-10-23T12:37:33.887 回答
0

您无需更改设备驱动程序中的任何内容,Android 可让您扫描接入点。请参阅文档

尽管要求进行多次扫描可能对电池寿命和应用程序的响应能力不是很好...

于 2012-03-30T00:24:23.117 回答