提高室内定位系统的 WiFi RSSI 扫描率

Increasing WiFi RSSI Scan Rate for Indoor Positioning System

我发现了一些与我即将提出的问题类似的问题,但我在这个领域太菜鸟了,无法将答案应用到我的特定问题。

我有一个大约 40,000 平方英尺的区域,由 22 个 AP 覆盖,每个 AP 承载 6 个 WiFi 通道。我正在使用 WiFi RSSI 信息来估计用户在这 40,000 平方英尺内的位置。我目前正在解决的问题之一是 RSSI 扫描刷新率......似乎需要将近 4 秒或更长时间来刷新 RSSI 信息.这对我的应用程序来说是完全不能接受的,因为用户可以在那个时间跨度内移动很多。

我正在使用 Android 设备,并且更喜欢对所有 android 用户通用的解决方案。我可以做些什么来提高这个扫描率?

我读到它需要 4 秒以上的原因是因为它真的只需要那么长时间...但是,对于我的应用程序,我的 phone 能够轻松地处理中间的其他事情这4秒window。例如,可以向按钮上的点击计数器发送垃圾邮件,然后随机刷新扫描结果。

以下代码用于获取RSSI扫描:

    Context context = getApplicationContext();
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    wifiManager.startScan();
    List<ScanResult> scan = wifiManager.getScanResults();

谢谢

您可以尝试在驱动程序级别修改设备,或者 install iw 并使用它来进行更精细的扫描。

但是,扫描时间少于 150 毫秒可能会导致跳过信标帧,从而使您的方法不准确。此外,如今大多数消费者路由器都配置为检测其信道上的信标传输冲突,然后退出或切换到另一个信道