Android Wifi поток
Я пытаюсь отследить код настроек Wi-Fi. Мое намерение состоит в том, чтобы узнать поток от приложения до уровня ядра после переключения кнопки WIFI с OFF на ON.
Пока мы идем на страницу настроек в Android, переключаем кнопку WLAN(WIFI), тогда ваш Wi-Fi должен быть включен.
Я обнаружил, что эта страница соответствует
WifiSettings.java
, В этом файле при переключении кнопки с OFF на ON:private void updateWifiState(int state) { getActivity().invalidateOptionsMenu(); switch (state) { case WifiManager.WIFI_STATE_ENABLING: addMessagePreference(R.string.wifi_starting); break; } mLastInfo = null; mLastState = null; mScanner.pause(); }
Эта функция будет вызвана.
Я тогда иду, чтобы проверить
WifiManager.java
, Я нашел:/** * Wi-Fi is currently being enabled. The state will change to {@link#WIFI_STATE_ENABLED} if it finishes successfully. * * @see #WIFI_STATE_CHANGED_ACTION * @see #getWifiState() */ public static final int WIFI_STATE_ENABLING = 2;
Однако после этого я не очень понял, как копать глубже в отслеживании потока.
1 ответ
Вы должны посмотреть на WifiEnabler.java
, так как код, который вы упомянули, просто показывает некоторую строку. В WifiEnabler::onCheckChanged()
, ты это видишь mWifiManager.setWifiEnabled()
называется.
После этого вы можете посмотреть на WifiManager.java
и другие связанные файлы в этом каталоге. Существует конечный автомат, и вы должны отслеживать переходы между состояниями.
Как правило, Android использует wpa_supplicant
, что почти так же, как Linux. Файл конфигурации находится на /data/misc/wifi/wpa_supplicant.conf
и генерируется Android. После переключения Wi-Fi, Android запускается wpa_supplicant
и общается с ним. wpa_supplicant
отвечает за сканирование и подключение к станции Wi-Fi.