如何使用安卓 SDK 计算我的 wifi 和 3g 的信号强度



我尝试制作一个应用程序来计算我的wifi或3g的信号强度,并让用户知道他与该接入点的距离。例如,我这里有一个代码示例,它将计算设备和 wifi 接入点之间的距离(以公里为单位):

public double calculateDistance(double signalLevelInDb, double freqInMHz)
{
    double exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(signalLevelInDb)) / 20.0;
    return Math.pow(10.0, exp);
}

但是,当我在 Android Studio 中调用该函数时,我不知道如何计算signalLevelInDb (=dbm) 和freqInMhz (=mHz),以便我可以将它们发送到函数以显示我的距离。如何让安卓工作室给我这两个值?我可以对3g使用相同的功能吗?

请在 Android SDK 的官方文档中找到此信息:Android SDK API 文档,SignalStrength。

有了

这个类,你就有了方法

int getCdmaDbm()

获取以dBm为单位的CDMA RSSI值

或:

int getEvdoDbm()

获取以dBm为单位的EVDO RSSI值

作为替代方案,您可以查看自 API 级别 1 以来支持的 TelephonyManager 类。有了这个,您可以找出您的移动设备当前处于哪种网络状态(,...public int getNetworkType ()),从而找出或至少转换为相应的"频率"。

希望这对您的距离计算有所帮助。

相关内容

  • 没有找到相关文章

最新更新