/android/frameworks/base/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java:
final BroadcastReceiver mReceiver = new BroadcastReceiver() {
if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {
updateWifiState(
intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
WifiManager.WIFI_STATE_UNKNOWN));
}
}
private void updateWifiState(int state) {
if (state == WifiManager.WIFI_STATE_ENABLED) {
mScanner.resume();//Scanner mScanner;
}
}
Scanner为WifiTracker.java的内部类,并且调用其resume()。
class Scanner extends Handler {
void resume() {
sendEmptyMessage(MSG_SCAN);
}
}
public void handleMessage(Message message) {
if (mWifiManager.startScan()) {
mRetry = 0;
}
}
/android/frameworks/base/wifi/java/android/net/wifi/WifiManager.java: