Obtener SSID cuando WIFI está conectado
Estoy tratando de obtener el SSID de la red WIFI cuando mi dispositivo Android está conectado a WIFI.
He registrado un BroadcastReceiver escuchando android.net.wifi.supplicant.CONNECTION_CHANGE
. Recibo la notificación cuando WIFI se desconecta o se vuelve a conectar. Desafortunadamente, no puedo obtener el SSID de la red.
- La aplicación nunca recibe RSSI_CHANGED_ACTION
- Android 6.0 comprueba si está conectado a una red Wi-Fi (sin Internet)
- Cómo enviar MAC marco de datos de difusión con Android AP
- Chat wifi entre dos o más dispositivos Android
- ¿Cómo crear un GO autónomo para Wifi Direct en Android con ssid dedicado y contraseña?
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, obtengo la cadena <unknown ssid>
nuevo.
Estos son los permisos en el manifiesto (he agregado ACCESS_NETWORK_STATE sólo para comprobar, 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? ¿Es la emisión encendida temprano, antes de que se establezca la conexión? ¿Hay otra emisión que debo escuchar? Sólo estoy interesado en las conexiones WIFI, no en las conexiones 3G.
Actualización: Acabo de comprobar, wifiInfo.getBSSID()
devuelve null.
- Conexión WiFi de Android mediante programación
- Android: Escaneado de redes Wifi + Lista seleccionable
- ¿Tiene el emulador de dispositivos Android una dirección MAC?
- Cómo obtener el estándar wifi
- Cómo obtener mi hotspot wifi ssid en mi sistema android actual
- ¿Cómo mantenerse conectado a través de la red móvil después de que WIFI esté conectado en Android?
- Cambiar el rango de IP WiFi? Forzar IPv6 en Android WiFi-Direct?
- Crear configuración de punto de acceso Wifi en android
Escucho 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 ()) {
Comprobar si hay netInfo.isConnected (). Entonces puedo usar
WifiManager wifiManager = (WifiManager) getSystemService (Context.WIFI_SERVICE); WifiInfo info = wifiManager.getConnectionInfo (); String ssid = info.getSSID();
Si no quieres hacer Broadcast Receiver, entonces prueba simple
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 desconecta o se conecta a un nuevo SSID o cualquier cambio de estado wifi, entonces usted necesita para inicializar WifiInfo es decir wifiInfo = wifiManager.getConnectionInfo();
Manera simple y más fácil.
public String getWifiName(Context context) { WifiManager manager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); if (manager.isWifiEnabled()) { WifiInfo wifiInfo = manager.getConnectionInfo(); if (wifiInfo != null) { DetailedState state = WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState()); if (state == DetailedState.CONNECTED || state == DetailedState.OBTAINING_IPADDR) { return wifiInfo.getSSID(); } } } return null; }
Compruebe a través de NetworkInfo para el tipo wifi si está conectado. Y luego use wifiinfo getSSid (). Es posible que desee eliminar las barras dobles de returnID SSID
https://play.google.com/store/apps/details?id=com.connect.freewifi
Debe consultar esta aplicación y la API del desarrollador en http://developer.android.com/reference/android/net/wifi/WifiInfo.html.
Le ayudará con su tarea.
- El botón de Android selecciona y presiona dibujable
- Phonegap – automáticamente incluyendo cordova correcto