1.新增權限(如果Android版本6.0以上必須實作動態取得權限)
<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" />
2.主程式部分
private WiFiManager mWiFiManager; private List<ScanResult> results; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ... ... wifiManager = (WifiManager) this.getApplicationContext().getSystemService(Context.WIFI_SERVICE); if(!wifiManager.isWifiEnabled()){ //WiFi未開啟的話,打開它 wifiManager.setWifiEnabled(true); } //開始進行掃描 scanWifi(); } private void scanWifi(){ registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { wifiScanReceive(); } }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); wifiManager.startScan(); } private void wifiScanReceive(){ // the result.size() is 0 after update to Android v6.0, same code working in older devices. results = wifiManager.getScanResults(); int size = results.size(); Toast.makeText(this,"scan result :" + size,Toast.LENGTH_SHORT).show(); for(int i = 0 ; i <size ; i++ ){ //手機目前周圍的Wi-Fi環境 String SSID = results.get(i).SSID ; int LEVEL = results.get(i).level; String item = String.format("%s-%d",SSID,LEVEL); Log.d("wifi",item); } }
-END-
發佈留言