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 訊號變化:
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"); }