Android获取wifi信号强度

jopen 11年前

1.Android获取wifi信号质量:

int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);即信号强度。

获取方法:

 
    private String obtainWifiInfo() {                // Wifi的连接速度及信号强度:                WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);                // WifiInfo wifiInfo = wifiManager.getConnectionInfo();                WifiInfo info = wifiManager.getConnectionInfo();                if (info.getBSSID() != null) {                    // 链接信号强度                    int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);                    // 链接速度                    int speed = info.getLinkSpeed();                    // 链接速度单位                    String units = WifiInfo.LINK_SPEED_UNITS;                    // Wifi源名称                    String ssid = info.getSSID();                }                return info.toString();           }  

2.注册 receiver监听wifi 信号变化:</span></span>
</span>

 
public BroadcastReceiver rssiReceiver = new BroadcastReceiver() {            @Override            public void onReceive(Context context, Intent intent) {                }        };        @Override        public void onResume() {            super.onResume();            registerReceiver(rssiReceiver, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION));                        Log.d("way", "Registered");        }        @Override        public void onPause() {            super.onPause();                        unregisterReceiver(rssiReceiver);            Log.d("way", "Unregistered");        }