Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

11.2. WI-FI 与 蜂窝网络 信号强度检测

	
		public static int getWifiSignalStrength(Context context) {
            WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            if (wifiManager != null) {
                WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                if (wifiInfo != null) {
                    int rssi = wifiInfo.getRssi();
                    // 可将RSSI值转换为0 - 4的信号强度等级
                    return WifiManager.calculateSignalLevel(rssi, 5);
                }
            }
            return -1;
        }


        public static int getCellularSignalStrength(Context context) {
            TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            if (telephonyManager != null) {
                int level = 0;
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
                    level = telephonyManager.getSignalStrength().getLevel();
                }
                return level;
            }
            return -1;
        }