Android Wifi поток

Я пытаюсь отследить код настроек Wi-Fi. Мое намерение состоит в том, чтобы узнать поток от приложения до уровня ядра после переключения кнопки WIFI с OFF на ON.

Пока мы идем на страницу настроек в Android, переключаем кнопку WLAN(WIFI), тогда ваш Wi-Fi должен быть включен.

  1. Я обнаружил, что эта страница соответствует 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();          
    }  
    

    Эта функция будет вызвана.

  2. Я тогда иду, чтобы проверить 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.

Другие вопросы по тегам