How to get the connection strength of Wifi access points?

前端 未结 5 1961
谎友^
谎友^ 2020-12-05 01:09

I am building an application reading the signal strength of each available Wifi access point.

I\'ve written code like:

    wifi = (WifiManager) getS         


        
5条回答
  •  情书的邮戳
    2020-12-05 01:57

    mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    receiverWifi = new WifiReceiver();
        registerReceiver(receiverWifi, new IntentFilter(
                WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    class WifiReceiver extends BroadcastReceiver {
        public void onReceive(Context c, Intent intent) {
    
            List wifiList = mainWifi.getScanResults();
            ArrayList m4MessagesList = new ArrayList();
            for (int i = 0; i < wifiList.size(); i++) {
                ScanResult scanResult = wifiList.get(i);
                WifiConnectionBean bean = new WifiConnectionBean();
                bean.setConnectionName(scanResult.SSID); // + "--" +
                                                            // scanResult.frequency);
                bean.setDescription(scanResult.capabilities);
                bean.setId(scanResult.SSID);
                bean.setLevel(String.valueOf(scanResult.level));
                bean.setSignalStrength(String.valueOf(scanResult.BSSID));
                m4MessagesList.add(bean);
            }
            if (m4MessagesList == null) {
                Toast.makeText(WifiIdentificationActivity.this,
                        "WifiConnection not available", Toast.LENGTH_SHORT)
                        .show();
            } else {
                String message = "Scanning complete. " + m4MessagesList.size()
                        + " connections found!";
            }
            pd.dismiss();
    
        }
    }
    

    where scanResult.SSID gives the signal strength.

提交回复
热议问题