在开启 WiFi 后,一般会通过监听 CONFIGURED_NETWORKS_CHANGED_ACTION 网络变化广播,在 WiFi 状态为 WifiManager.WIFI_STATE_ENABLED 时,开始扫描。
1、APP开始扫描
WifiManager mWifiManager;
//取得WifiManager对象
mWifiManager=(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
//开始扫描WiFi
mWifiManager.startScan();
2、源码分析
WifiManager.startScan()
源码位置:/packages/modules/Wifi/framework/java/android/net/wifi/WifiManager.java
/**
* 请求对接入点进行扫描
* 要启动Wi-Fi扫描,需要{android.Manifest.permission#CHANGE_WIFI_STATE} 权限
* 注册一个BroadcastReceiver来监听 {SCAN_RESULTS_AVAILABLE_ACTION} 获取扫描结果
* 当收到广播时:调用 {((WifiManager) getSystemService(WIFI_SERVICE)).getScanResults()} 获取结果
* @return true 如果操作成功,即启动扫描。
* @deprecated 在未来的版本中,应用程序触发扫描请求的功能将被移除。
*/
@Deprecated
public boolean startScan() {
return startScan(null);
}