2012-07-05 2 views
4

Я пытаюсь проследить код настройки wifi. Мое намерение - узнать поток от приложения до уровня ядра после переключения кнопки WIFI на ON.Android Wifi flow

Пока мы идем на страницу настроек в 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; 
    

Однако, после этого, я не очень понимаю, как копать глубже проследить поток.

+0

любой ??? любой ключ поможет. – Sam

ответ

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-станции.

+0

Спасибо человек. Мне нравится ваш ответ. Для меня достаточно намека. :) – Sam