Android: comprueba si la contraseña del wifi es correcta

Planeo hacer una aplicación que comprueba si una determinada red wifi usa una contraseña común. Tengo una lista de contraseñas más comunes, pero la siguiente función:

public boolean connectTo(String psKey){ WifiConfiguration wc = new WifiConfiguration(); wc.SSID = "\"" + dbw.getSsid() + "\""; wc.preSharedKey = "\"" + psKey + "\""; wc.status = WifiConfiguration.Status.ENABLED; wc = configureCapabs(wc, dbw.getCapability()); int res = wifi.addNetwork(wc); Toast.makeText(this, "add Network returned " + res , Toast.LENGTH_SHORT).show(); boolean b = wifi.enableNetwork(res, true); Toast.makeText(this, "enableNetwork returned " + b , Toast.LENGTH_SHORT).show(); if(!b) return false; boolean fin = /*b ? wifi.reassociate() : */wifi.reconnect(); return fin; } 

Devuelve true, incluso si la contraseña es incorrecta. ¿Hay alguna forma de comprobar si la contraseña que intenté iniciar sesión con se aceptó o rechazó?

Está utilizando los métodos de reconnect() / reassociate() de WiFiManager para comprobar el tiempo o no la conexión tuvo éxito, pero el valor booleano que devuelven significa algo más. El valor devuelto sólo le informa sobre el resultado de iniciar una operación determinada. Esto se debe a que la asociación y la conexión a una red WiFi lleva tiempo. Estos métodos sin embargo volverán inmediatamente y no bloquearán. La tarea real de conectar o asociarse con la red se realiza asincrónicamente en segundo plano.

Puede supervisar lo que está sucediendo con la conexión WiFi escuchando un sistema específico de difusión amplia:

 <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> <action android:name="android.net.wifi.STATE_CHANGE"/> 

Usted puede encontrar más información sobre esto AQUÍ – Revise la respuesta de Torsten.

En cuanto a comprobar si la contraseña fue aceptada o rechazada por medio de un valor devuelto, en realidad no sé, sin embargo, puedo pensar en dos 'posibles' estrategias alternativas que podrían net el mismo resultado?

No estoy 100% seguro ya que no lo he hecho antes, sin embargo me pregunto si Pinging el suplicante funcionaría?

http://developer.android.com/reference/android/net/wifi/WifiManager.html#pingSupplicant ()

¿O eso o comprobar si usted tiene una dirección IP ahora?

http://developer.android.com/reference/android/net/wifi/WifiInfo.html

  • Servidor y cliente en un dispositivo con WiFi habilitado
  • ¿Cómo obtener una notificación cuando un dispositivo se conecta a su android wifi tethering AP?
  • Cómo crear y leer configuraciones WEP / EAP WiFi de forma programática en Android?
  • ¿Puede una red bluetooth o wifi (spp) perder alguna vez los bytes o haber corrompido?
  • Wifi conexión múltiple directa ad-hoc
  • Android: Activar / desactivar WiFi Hotspot mediante programación en Android Marshmallow (6.0)
  • ¿Puedo cambiar el propietario del grupo en un grupo persistente en Wi-Fi Direct?
  • ¿Cómo hacer un peer androide a peer sin utilizar el servidor intermedio?
  • Cómo obtener el IP del hotspot wifi en Android?
  • Cómo obtener la dirección MAC en Android 6.0
  • hostapd & rpbi portal cautivo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.