Comment et quoi configurer sur Android WifiConfiguration.preSharedKey pour vous connecter au réseau WiFi WPA2 PSK

Dans Android 1.5 (également sur 1.6)

Comment ajouter un point d'accès à partir du code?

  • Barre d'outils Android et animation d'image utilisateur comme Twitter
  • Transférez le flux vidéo en temps réel vers le serveur en utilisant Android
  • Android PopupWindow showAsDropDown () ne fonctionne pas correctement
  • Vérifiez si le paquet SDK Android est installé par programme
  • Ajouter android: nom = "quelque chose" à AndroidManifest.xml "application" tag de Cordova plugin.xml
  • Ajouter un projet de bibliothèque non-Android à une application Android dans Eclipse
  • Point d'accès qui supporte WPA2. Voici mon extrait de code.

    WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiConfiguration wc = new WifiConfiguration(); // This is must be quoted according to the documentation // http://developer.android.com/reference/android/net/wifi/WifiConfiguration.html#SSID wc.SSID = "\"SSIDName\""; wc.preSharedKey = "password"; wc.hiddenSSID = true; wc.status = WifiConfiguration.Status.ENABLED; wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); int res = wifi.addNetwork(wc); Log.d("WifiPreference", "add Network returned " + res ); boolean b = wifi.enableNetwork(res, true); Log.d("WifiPreference", "enableNetwork returned " + b ); 

    Ce code échoue, comme dans LogCat, apparaissent

    01-26 16: 44: 13.550: ERROR / wpa_supplicant (2032): ligne 0: mot de passe PSK non valide.

    Je suis sûr que c'est le mot de passe et que tous les autres paramètres sont corrects. Que dois-je faire?

    3 Solutions collect form web for “Comment et quoi configurer sur Android WifiConfiguration.preSharedKey pour vous connecter au réseau WiFi WPA2 PSK”

    La raison de ma peine est ici dans ce problème de documentation

    Bien que la documentation indique ici

    "La clé pré-partagée à utiliser avec WPA-PSK. Lorsque la valeur de cette touche est lue, la clé réelle n'est pas retournée, juste un" * "si la clé a une valeur ou la chaîne nulle autrement."

    C'est correct, mais très important, ce qu'il ne dit pas, c'est attendu ici ether 64 byte hash résultat de la commande linux

     wpa_passphrase <ssid> [passphrase] 

    Ou le mot de passe du point d'accès EN DOUBLE COTE!

    Donc, si le PSK d'Access Point est "exemple", il doit être transmis dans java comme ça

     WifiConfiguration myWiFiConfig = new WifiConfiguration(); ... myWiFiConfig.preSharedKey = "\"example\""; ... 

    OU

     myWiFiConfig.preSharedKey = "0a0b0f62170ecc5bcf721b6ff170b8b560101b5d56b00a26abec217e0bb4aa1f"; 

    Pour tout le reste de vous qui trébucher sur cela, le bon moyen est:

    Copiez-le et collez-le en tant que tel et enregistrez-vous une demi-journée de douleur que nous avons déjà dépensé (remerciements spéciaux à Reflog )

     WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiConfiguration wc = new WifiConfiguration(); wc.SSID = "\"SSIDName\""; wc.preSharedKey = "\"password\""; wc.hiddenSSID = true; wc.status = WifiConfiguration.Status.ENABLED; wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); int res = wifi.addNetwork(wc); Log.d("WifiPreference", "add Network returned " + res ); boolean b = wifi.enableNetwork(res, true); Log.d("WifiPreference", "enableNetwork returned " + b ); 

    Vous devrez ajouter une ligne inférieure pour:

     wifi.saveConfiguration(); 

    Merci, tout ce que je peux utiliser votre code conncet à mon wpa psk wifi.

      WifiConfiguration wc = new WifiConfiguration(); // This is must be quoted according to the documentation // http://developer.android.com/reference/android/net/wifi/WifiConfiguration.html#SSID wc.SSID = "\"zpoint\""; wc.preSharedKey = "\"sipisP@ssw0rd!\""; wc.hiddenSSID = true; wc.status = WifiConfiguration.Status.ENABLED; wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); int res = wifi.addNetwork(wc); Log.d("WifiPreference", "add Network returned " + res ); boolean b = wifi.enableNetwork(res, true); Log.d("WifiPreference", "enableNetwork returned " + b ); 

    Au début, je saisis le mot de passe d'erreur, mais plus tard, je corrige le mot de passe, alors ça marche.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.