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"); }</pre><br />
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!