I have tried to work with the Android Wifimanager. If i start a Scan i only get 0 Networks found.
My Code:
//Listview private ArrayAdapter adapter; private ListView list; private ArrayList mylist = new ArrayList(); ListAdapter adapter1; TextView tV;
//Wifi
private WifiManager mywifi;
WifiReceiver myreceiver;
List<ScanResult> wifiList;
StringBuilder sb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//definieren
Button start = (Button) findViewById(R.id.btnstart);
//Listview
list = (ListView)findViewById(R.id.lV);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mylist);
list.setAdapter(adapter);
//Textview
tV = (TextView) findViewById(R.id.tV);
tV.setText("");
//Wifi
mywifi = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if(mywifi.isWifiEnabled()==false){
Toast.makeText(getApplicationContext(),"Wifi is disabled ....making it enabled",Toast.LENGTH_SHORT).show();
mywifi.setWifiEnabled(true);
}
myreceiver = new WifiReceiver();
registerReceiver(myreceiver,new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mywifi.startScan();
//buttenevents
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// getWifiNetworksList();
}
});
}
public void getWifiNetworksList(){
tV.setText("Wifi is starting");
tV.setText(myreceiver.Wifilist());
}
class WifiReceiver extends BroadcastReceiver {
public String txt;
// This method call when number of wifi connections changed
public void onReceive(Context c, Intent intent) {
sb = new StringBuilder();
wifiList = mywifi.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");
}
tV.setText(sb);//tV...TextView
Toast.makeText(getApplicationContext(),"reciever finished",Toast.LENGTH_SHORT).show();
}
public String Wifilist(){
return txt;
}
}
}
Sorry for the formating errors