从Android文档中我们知道WiFiManager.startScan()
调用被动 WiFi扫描。它通常比活动扫描花费更多的时间。因此,我想使用下面的方法调用活动扫描。
在前面的WiFiManager.java有一个隐藏的方法叫做startScanActive
。我们不能直接调用它,但可以通过java反射调用它。@hide在Android源代码中意味着什么?
然而,这种方法在Android 4.3+中消失了。那么,如何在Android 4.3+中启动主动WiFi扫描呢?
谢谢
当然,主动扫描是不可能的,因此从以后的API级别中删除。
这是一个设备和/或操作系统版本相关的设置。例如,在Nexus One上,扫描大约需要一秒钟,而在G1上,它需要更长的时间(或者在扫描几次后获得新的结果)。
此外,Android做被动扫描,它监听信标。通过发送探测请求并等待探测响应,进行主动扫描可能会在网络上造成大量拥塞。
参考:android-wifi-active-scans和WifiManager.
那么你就可以在你的activity类中使用以下代码:
wiimanager wiimanager = (wiimanager) this.getSystemService(Context.WIFI_SERVICE);wifiManager.setWifiEnabled(真正的);wifiManager.setWifiEnabled(假);