I'm trying to list available wifi network by ScanResult.
Can anyone tell me what's wrong in my code? I'm not getting the desired output.
Here's My code:
public class Activity_scanwifi extends AppCompatActivity {
Switch aSwitch;
TextView textView;
WifiManager wifiManager;
WifiInfo wifiInfo;
String info;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scanwifi);
aSwitch=(Switch) findViewById(R.id.s);
textView=(TextView) findViewById(R.id.textView);
wifiManager=(WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiManager.startScan();
aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// switch on
if(isChecked && ! wifiManager.isWifiEnabled())
{
wifiManager.setWifiEnabled(true);
wifiInfo=wifiManager.getConnectionInfo();
}
// switch off
if (!isChecked && wifiManager.isWifiEnabled())
{
wifiManager.setWifiEnabled(false);
}
}
});
broadcast b=new broadcast();
registerReceiver(b,new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
}
public class broadcast extends BroadcastReceiver{
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onReceive(Context context, Intent intent) {
// onReceive method updates any change in the available wifi
StringBuffer stringBuffer=new StringBuffer();
/// List<WifiConfiguration> list=wifiManager.getConfiguredNetworks();
List<ScanResult> list=wifiManager.getScanResults();
//for(WifiConfiguration wifiConfiguration : list)
for(ScanResult scanResult : list)
{
stringBuffer.append(scanResult);
}
textView.setText(stringBuffer);
}
}
}