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