public class SearchActivity extends ActionBarActivity {
private TextView wifiText;
private WifiManager wifiManager;
private StringBuilder sb;
private List<ScanResult> wifiList;
private WifiReceiver wifiReceiver;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
sb = new StringBuilder();
wifiText = (TextView) findViewById(R.id.wifi);
wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiReceiver = new WifiReceiver();
registerReceiver(wifiReceiver, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
wifiText.setText("\nStarting Scan\n");
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new Fragment()).commit();
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 0, 0, "Refresh");
return super.onCreateOptionsMenu(menu);
public boolean onOptionItemSelected(int featureId, MenuItem item) {
wifiText.setText("Starting Scan");
return super.onMenuItemSelected(featureId, item);
protected void onPause() {
unregisterReceiver(wifiReceiver);
protected void onResume() {
registerReceiver(wifiReceiver, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
private final class WifiReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
sb = new StringBuilder();
wifiList = wifiManager.getScanResults();
for (int i = 0; i < wifiList.size(); i++) {
sb.append(new Integer(i + 1).toString() + ".");
sb.append((wifiList.get(i)).toString()).append("\n\n");
wifiText.setText(sb.toString());