android 获取wifi 信号质量,信号强度

来源:互联网 发布:c语言开源代码 编辑:程序博客网 时间:2024/04/28 02:40

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();
}

//////////////////////////// wifi 信号变化 :
注册 receiver,

public BroadcastReceiver rssiReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
                Log.d("Rssi", "RSSI changed");
               // wifiInfo.setText(obtainWifiInfo());

        }
    };
    @Override
    public void onResume() {
        super.onResume();
        registerReceiver(rssiReceiver, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION));
        
        Log.d("Rssi", "Registered");
    }

    @Override
    public void onPause() {
        super.onPause();
        
        unregisterReceiver(rssiReceiver);
        Log.d("Rssi", "Unregistered");
    }