2012-07-05 5 views
4

J'essaie de tracer le code des paramètres wifi. Mon intention est de connaître le flux de l'application à la couche du noyau après avoir basculé le bouton WIFI sur ON. Pendant que nous allons à la page des paramètres dans Android, basculez le bouton WLAN (WIFI), alors votre wifi devrait être activé.Android Wifi flux

  1. J'ai trouvé que cette page correspond à WifiSettings.java. Dans ce fichier, pendant que vous basculez le bouton de 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();   
    } 
    

    Cette fonction sera appelée. Je passe ensuite à WifiManager.java. J'ai trouvé:

    /** 
    * 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; 
    

Cependant, après cela, je ne comprends pas vraiment comment creuser plus profondément dans le flux de traçage.

+0

quelqu'un? n'importe quelle idée aiderait. – Sam

Répondre

1

Vous devriez regarder WifiEnabler.java, puisque le code que vous avez mentionné montre juste une chaîne. Dans WifiEnabler::onCheckChanged(), vous pouvez voir que mWifiManager.setWifiEnabled() est appelée. Par la suite, vous pouvez regarder WifiManager.java et d'autres fichiers associés dans ce répertoire. Il y a une machine d'état et vous devez tracer les transitions d'état.

En général, Android utilise wpa_supplicant, ce qui est presque le même que Linux. Le fichier de configuration est au /data/misc/wifi/wpa_supplicant.conf et est généré par Android. Après avoir basculé le commutateur wifi, Android commence wpa_supplicant et communique avec elle. Le wpa_supplicant est en charge de la numérisation et la connexion à la station wifi.

+0

Merci l'homme. J'aime ta réponse. Un indice me suffit. :) – Sam