una saber reconoce pero online oculta nombre hackear encontrar conectarse conecta como celular analizador android wifi ssid

android - saber - Obtener SSID cuando WIFI está conectado



como saber el ssid de una red oculta (6)

Si no quieres hacer Broadcast Receiver, prueba

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo; wifiInfo = wifiManager.getConnectionInfo(); if (wifiInfo.getSupplicantState() == SupplicantState.COMPLETED) { ssid = wifiInfo.getSSID(); }

Recuerde que cada vez que el usuario se desconecta o se conecta al nuevo SSID o cualquier cambio de estado de wifi, entonces debe inicializar WifiInfo, es decir, wifiInfo = wifiManager.getConnectionInfo();

Intento obtener el SSID de la red WIFI cuando mi dispositivo Android está conectado a WIFI.

He registrado un BroadcastReceiver escuchando por android.net.wifi.supplicant.CONNECTION_CHANGE . Recibo la notificación cuando WIFI se desconecta o se vuelve a conectar. Lamentablemente, no puedo obtener el SSID de la red.

Estoy usando el siguiente código para encontrar el SSID:

WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); String ssid = wifiInfo.getSSID();

En lugar del SSID, <unknown ssid> la cadena <unknown ssid> .

Estos son los permisos en el manifiesto (he agregado ACCESS_NETWORK_STATE solo para verificar, realmente no lo necesito)

<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

¿Por qué pasó esto? ¿Cómo puedo obtener el SSID real? ¿La transmisión se activa antes de que se establezca la conexión? ¿Hay otra transmisión que deba escuchar? Solo me interesan las conexiones WIFI, no las conexiones 3G.

Actualización: acabo de verificar, wifiInfo.getBSSID() devuelve nulo.


A partir de Android 8.1 (API 27), las aplicaciones deben tener permiso de ACCESS_COARSE_LOCATION (o ACCESS_FINE_LOCATION ) para obtener resultados de WifiInfo.getSSID() o WifiInfo.getBSSID() .

Este permiso también es necesario para obtener resultados de WifiManager.getConnectionInfo() y WifiManager.getScanResults() aunque no está claro si esto es nuevo en 8.1 o si se requirió previamente.

Source : "BSSID / SSID se puede utilizar para deducir la ubicación, por lo que requieren los mismos permisos de ubicación para acceder a estos campos de WifiInfo solicitados utilizando WifiManager.getConnectionInfo () como para WifiManager.getScanResults ()".


En Android 8.1, es necesario activar la ubicación para obtener el SSID; de lo contrario, puede obtener el estado de conexión pero no el SSID.

WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = null; if (wifiManager != null) wifiInfo = wifiManager.getConnectionInfo(); String ssid = null; if (wifiInfo != null) ssid = wifiInfo.getSSID(); /*you will get SSID <unknown ssid> if location turned off*/


Escucho a WifiManager.NETWORK_STATE_CHANGED_ACTION en un receptor de difusión

if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals (action)) { NetworkInfo netInfo = intent.getParcelableExtra (WifiManager.EXTRA_NETWORK_INFO); if (ConnectivityManager.TYPE_WIFI == netInfo.getType ()) {

Verifico por netInfo.isConnected (). Entonces puedo usar

WifiManager wifiManager = (WifiManager) getSystemService (Context.WIFI_SERVICE); WifiInfo info = wifiManager.getConnectionInfo (); String ssid = info.getSSID();

ACTUALIZAR

Desde Android 8.0 en adelante, no obtendremos el SSID de la red conectada a menos que el GPS esté encendido.


Este es un seguimiento de la respuesta dada por @EricWoodruff.

Puede usar netInfo getExtraInfo() para obtener wifi SSID.

if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals (action)) { NetworkInfo netInfo = intent.getParcelableExtra (WifiManager.EXTRA_NETWORK_INFO); if (ConnectivityManager.TYPE_WIFI == netInfo.getType ()) { String ssid = info.getExtraInfo() Log.d(TAG, "WiFi SSID: " + ssid) } }

Si no está utilizando BroadcastReceiver, marque .com/questions/49977395/… respuesta para obtener SSID usando Context

Esto se prueba en Android Oreo 8.1.0