如何在Android中主动扫描WiFi

时间:2014-07-10 07:40:09

标签: java android android-wifi

在Android文档中,我们知道WiFiManager.startScan()会调用被动 WiFi扫描。它通常比主动扫描花费更多时间。因此,我想使用以下方法调用主动扫描

在之前的 WiFiManager.java 中,有一个名为startScanActive的隐藏方法。我们不能直接调用它,但我们可以通过java反射调用它。 What does @hide mean in the Android source code?

然而,这种方法在Android 4.3+中消失了。那么,如何在Android 4.3 +中开始有效的WiFi扫描?

谢谢

2 个答案:

答案 0 :(得分:0)

AFAIK,无法进行主动扫描,因此会从以后的API级别中删除。

这是依赖于设备和/或操作系统版本的设置。例如,在Nexus One上扫描需要大约一秒钟,而在G1上则需要更长的时间(或在几次扫描后获得新的结果)。

此外,Android执行被动扫描,它会监听信标。执行主动扫描可以通过发送探测请求并等待探测响应来在网络上造成大量拥塞。

参考:android-wifi-active-scansWifiManager

答案 1 :(得分:-1)

然后,您可以在活动类中使用以下内容:

WifiManager wifiManager =(WifiManager)this.getSystemService(Context.WIFI_SERVICE); wifiManager.setWifiEnabled(真); wifiManager.setWifiEnabled(假);