Android获取Wifi信号强度方法总结 | 您所在的位置:网站首页 › wifi信号实时监测 › Android获取Wifi信号强度方法总结 |
直接封装了一个工具类,获取WIFI信号强度直接调用该工具类的getCurrentNetworkRssi方法即可。 public class WifiUtils { // 获取当前热点最新的信号强度 public static String getCurrentNetworkRssi(Context mContext) { WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); return isWifiConnected(mContext) ? String.valueOf(wifiInfo.getRssi()) : "disconnect or not enable"; } /** * wifi是否连接 * * @param context * @return */ public static boolean isWifiConnected(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (null != networkInfo && networkInfo.isConnected()) { return true; } return false; } }注:需要导包和添加permission,都通过快捷键即可。 需求变更: 信号强度这个要用0-5那个信号值 信号/netDbm“信号获取不到就传0”【车机传12345】【手机端全部传0】 问题:那1 2 3 4 5 这种,计算方式的临界值是多少呢? 答:直接有个转化方法,netDbm = WifiManager.calculateSignalLevel(info.getRssi(), 5); 所以根据上面的需求变更,将getCurrentNetworkRssi方法中的: return isWifiConnected(mContext) ? String.valueOf(wifiInfo.getRssi()) : "disconnect or not enable";更改为: return isWifiConnected(mContext) ? String.valueOf(WifiManager.calculateSignalLevel(wifiInfo.getRssi(), 5)) : "0"; |
CopyRight 2018-2019 实验室设备网 版权所有 |