我需要在我的Android应用程序上进行频繁的wifi扫描(我正在尝试构建基于wifi RSSI值的本地室内定位系统)。如果我调用wifi.startScan()我每隔6秒就会调用一次onReceive()(默认情况下我会被动扫描):如何获得更频繁的回调?我应该要求“主动”扫描吗?怎么做?有什么缺点吗?
答案 0 :(得分:2)
我一直在尝试同样的事情,我得出以下结论。 2.1和更高版本是不可能的。我对较低版本一无所知,因为我的应用程序必须在2.1及更高版本上运行。
更改Android SDK中的内容,以便启用主动扫描
- 追溯到司机,得出以下结论: 驱动程序每次都会将wifi模块设置为被动模式。我一直在寻找在驱动程序内更改此设置,但驱动器内部没有设置来实现此目的。
底线: 不可能。
答案 1 :(得分:1)
我认为你不能。它是设备和/或OS版本的依赖设置。例如,在Nexus One上扫描需要大约一秒钟,而在G1上则需要更长的时间(或在几次扫描后获得新的结果)。如果我没记错的话,某些Android版本(< 2.0)在每次调用startScan()
时都没有发出新的扫描,但可能会重用旧的结果。但我可能会误认为那个。