Cómo obtener redes wifi disponibles y mostrarlas en una lista en android

Amigos.Quiero encontrar todas las redes WiFi disponibles y mostrarlos en una lista que he intentado como a continuación .. Pero su no working.i han editado mi código y ahora tengo el resultado, pero con todo el resultado que no needed.I Sólo necesito el nombre de la red wifi en mi lista.

package com.example.wifilistdemo; import java.util.List; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.wifi.ScanResult; import android.net.wifi.WifiManager; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { TextView mainText; WifiManager mainWifi; WifiReceiver receiverWifi; List<ScanResult> wifiList; StringBuilder sb = new StringBuilder(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mainText = (TextView) findViewById(R.id.tv1); mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); if (mainWifi.isWifiEnabled() == false) { // If wifi disabled then enable it Toast.makeText(getApplicationContext(), "wifi is disabled..making it enabled", Toast.LENGTH_LONG).show(); mainWifi.setWifiEnabled(true); } receiverWifi = new WifiReceiver(); registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); mainWifi.startScan(); mainText.setText("Starting Scan..."); } public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 0, 0, "Refresh"); return super.onCreateOptionsMenu(menu); } public boolean onMenuItemSelected(int featureId, MenuItem item) { mainWifi.startScan(); mainText.setText("Starting Scan"); return super.onMenuItemSelected(featureId, item); } protected void onPause() { unregisterReceiver(receiverWifi); super.onPause(); } protected void onResume() { registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); super.onResume(); } // Broadcast receiver class called its receive method // when number of wifi connections changed class WifiReceiver extends BroadcastReceiver { // This method call when number of wifi connections changed public void onReceive(Context c, Intent intent) { sb = new StringBuilder(); wifiList = mainWifi.getScanResults(); sb.append("\n Number Of Wifi connections :"+wifiList.size()+"\n\n"); for(int i = 0; i < wifiList.size(); i++){ sb.append(new Integer(i+1).toString() + ". "); sb.append((wifiList.get(i)).toString()); sb.append("\n\n"); } mainText.setText(sb); } } } 

Necesita crear un BroadcastReceiver para escuchar los resultados del análisis Wifi:

 private final BroadcastReceiver mWifiScanReceiver = new BroadcastReceiver() { @Override public void onReceive(Context c, Intent intent) { if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { List<ScanResult> mScanResults = mWifiManager.getScanResults(); // add your logic here } } } 

En onCreate() asignarás mWifiManager e iniciarás una exploración:

 mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); registerReceiver(mWifiScanReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); mWifiManager.startScan(); 

getScanResults() devolverá datos sólo si tiene los permisos adecuados. Para ello, añade una de las dos líneas siguientes a tu AndroidManifest.xml :

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

También tenga en cuenta que en API 23+, los permisos deben ser solicitados en tiempo de ejecución. (Para un entorno de laboratorio, también puede conceder permisos manualmente en Configuración, pero no se recomienda la codificación para una aplicación de usuario final.)

Tenga en cuenta que el código que maneja los resultados del análisis se ejecutaría cada vez que un nuevo resultado de análisis estuviera disponible, actualizando el resultado.

  class WifiReceiver extends BroadcastReceiver { public void onReceive(Context c, Intent intent) { sb = new StringBuilder(); wifiList = mainWifi.getScanResults(); for (int i = 0; i < wifiList.size(); i++){ sb.append(new Integer(i+1).toString() + "."); sb.append((wifiList.get(i)).SSID); sb.append("\n"); } mainText.setText(sb); 
  • BroadcastReceiver declarado en manifesto no está recibiendo la transmisión
  • ANR keyDispatchingTimedOut pero no tiene clases en stacktrace
  • Bibliotecas "Wi-Fi Direct" para Android?
  • ¿Cómo abrir el cuadro de diálogo del sistema para introducir la contraseña de una red wifi segura en android?
  • WiFi getScanResults devuelve una lista vacía si el GPS está desactivado. (Android 6.0.1)
  • ¿Cómo pueden los usuarios / desarrolladores configurar la configuración de proxy de Android para las versiones 2.x?
  • Android: Determinar el tipo de seguridad de las redes wifi en el rango (sin conectarse a ellos)
  • ¿Está mal la interfaz de red en android?
  • No se puede trabajar con Android en una red corporativa con seguridad WPA / WPA2. Siempre desconecta?
  • Obtención de velocidad de datos de la red wifi / móvil mediante programación
  • ¿Cómo obtener el nombre de la red wifi fuera de android utilizando la API de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.