试试这个代码
public class WiFiDemo extends Activity implements onClickListener { WifiManager wifi;ListView lv; TextView textStatus; Button buttonScan; int size = 0; List<ScanResult> results; String ITEM_KEY = "key"; ArrayList<HashMap<String, String>> arraylist = new ArrayList<HashMap<String, String>>(); SimpleAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textStatus = (TextView) findViewById(R.id.textStatus); buttonScan = (Button) findViewById(R.id.buttonScan); buttonScan.setonClickListener(this); lv = (ListView)findViewById(R.id.list); wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); if (wifi.isWifiEnabled() == false) { Toast.makeText(getApplicationContext(), "wifi is disabled..making it enabled", Toast.LENGTH_LONG).show(); wifi.setWifiEnabled(true); }this.adapter = new SimpleAdapter(WiFiDemo.this, arraylist, R.layout.row, new String[] { ITEM_KEY }, new int[] { R.id.list_value }); lv.setAdapter(this.adapter); registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context c, Intent intent) { results = wifi.getScanResults(); size = results.size(); } }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); } public void onClick(View view) { arraylist.clear(); wifi.startScan(); Toast.makeText(this, "Scanning...." + size, Toast.LENGTH_SHORT).show(); try { size = size - 1; while (size >= 0) { HashMap<String, String> item = new HashMap<String, String>(); item.put(ITEM_KEY, results.get(size).SSID + " " + results.get(size).capabilities); arraylist.add(item); size--; adapter.notifyDataSetChanged(); } } catch (Exception e) { } } }WiFiDemo.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="16dp" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal"> <TextView android:id="@+id/textStatus" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Status" /> <Button android:id="@+id/buttonScan" android:layout_width="wrap_content" android:layout_height="40dp" android:text="Scan" /> </LinearLayout> <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="20dp"></ListView></LinearLayout>
对于
ListView- row.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="8dp"> <TextView android:id="@+id/list_value" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="14dp" /></LinearLayout>
在
AndroidManifest.xml中添加这些权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />



