Though this question might have duplicates, but I would like to answer as this question appears on my Google search in top 5.
To scan WiFi signals, you need to use the broadcast receiver ...
here is the example
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_es_wi_fi_settings);
this.manager = (WifiManager)(this.getSystemService(Context.WIFI_SERVICE));
if(!manager.isWifiEnabled()){
manager.setWifiEnabled(true);
}
receiver = new WifiReceiver();
registerReceiver(receiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
manager.startScan();
}
Broadcast receiver for Wifi scan
class WifiReceiver extends BroadcastReceiver
{
public void onReceive(Context c, Intent intent)
{
esWiFiSettings.this.runOnUiThread(new Runnable() {
@Override
public void run() {
List<ScanResult> results = manager.getScanResults();
if (results.size() <= 0)
return;
for (ScanResult result : results) {
Log.d(TAG, result.SSID);
}
}
});
}
}
I hope above code is enough to get the idea,