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ó?

2 Solutions collect form web for “Android: comprueba si la contraseña del wifi es correcta”

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

  • Adición de un nuevo portador de red a Android
  • Cómo obtener la dirección MAC de Android Wi-Fi Hotspot / tethering / AP
  • Android Lollipop preestablece datos móviles cuando Wi-Fi no tiene acceso a Internet?
  • Manteniendo Wifi-Direct activado en dispositivos AOSP
  • ¿Permitir que dos dispositivos se vean en Android usando la interfaz wifi?
  • Aplicaciones de Android, comunicación con un dispositivo conectado al puerto USB
  • Android cómo saber el uso total de datos de Internet por día a través de wifi y móvil
  • Android WIFI Cómo detectar cuándo está disponible una conexión WIFI específica
  • Diferencia entre getConnectionInfo () y getScanResults () para detectar cambios de intensidad de señal
  • Android: Fuerza los datos que se envían a través de radio vs WiFi
  • ¿Es posible forzar el tráfico de red a través de Wifi o de la red TMobile?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.