Friday, February 10, 2012

How to scan all wireless networks around through code in android?


Scan for wireless networks in the current area: 
public class WifiTester extends Activity {
  TextView mainText;
  WifiManager mainWifi;
  WifiReceiver receiverWifi;
  List<ScanResult> wifiList;
  StringBuilder sb = new StringBuilder();
  
  public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   mainText = (TextView) findViewById(R.id.mainText);
   mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
   receiverWifi = new WifiReceiver();
   registerReceiver(receiverWifi, new IntentFilter(
      WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
   mainWifi.startScan();
   mainText.setText("\nStarting Scan...\n");
  }

  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();
  }
  
  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)).toString());
      sb.append("\n");
    }
    mainText.setText(sb);
    }
  }
}

6 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. sir,
    your code was very useful....and it works welll......but i have one more suggestion...ie to display the result in a listview...which helps to select the available networks and get connected to any of the avialable network........pls help.its very urgent......thanks in advance

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. Hi Varsha,

      Did you get a solution for this ?

      Delete
  3. Hi please provide a source code...nagumeets@gmail.com

    ReplyDelete
  4. Hi please how to display the result in a listview...which helps to select the available networks and get connected to any of the avialable network........pls help.its very urgent......thanks in advance

    ReplyDelete