安卓工具类
wife工具类
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";