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ó?
- Wifi triangulación de posición
- Devolución de llamada en el dispositivo que se conecta a Wifi Hotspot
- ¿Puedo usar WiFi para transferir datos / mensajes entre dos teléfonos Android, no conectados a un enrutador?
- WiFi Password: ¿cómo se almacena y dónde?
- Compartir ajustes WiFi como QR-Code para WPA2 Enterprise
- Android 4.2.2 Wifi-Direct adhoc network - acceder a métodos ocultos android para establecer el SSID y contraseña?
- Reiniciar en modo TCP puerto 5555 se bloquea adb
- Android cómo saber el uso total de datos de Internet por día a través de wifi y móvil
- LocationManager devuelve la antigua ubicación en caché "Wifi" con la marca de hora actual
- Establecer la configuración de IP de Android, DNS, GATEWAY mediante programación
- No se puede conectar a un Wifi específico mediante programación en Android
- Android WifiManager getScanResult se queja Necesita el permiso ACCESS_COARSE_LOCATION o ACCESS_FINE_LOCATION aunque el permiso declarado
- Android tethering, cómo deshabilitar dhcp
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
- Algún tipo de JavaScript es preventDefault para Android
- El desbordamiento CSS hace clic en eventos en la pestaña Galaxy