如何在Android应用程序中获得准确的信号强度?

老大581

我使用CellInfo 每秒捕获信号强度和 ARFCN/UARFCN/EARFCN。

但是,我认为它不是很准确。它总是比手机设置中显示的信号强度差 -5 ~ -10 dBm。有时,我也会得到 0 或 integer.MAX_VALUE。我的代码有问题还是有其他方法可以捕获真实的信号强度?

var cellInfoList: List<CellInfo> = mTelephonyManager.allCellInfo
if (cellInfoList.isNotEmpty()) {
    for (cellInfo in cellInfoList) {
        if (cellInfo is CellInfoLte) {
            val cellSignalStrengthLte = cellInfo.cellSignalStrength
            val cellIdentityLte = cellInfo.cellIdentity
            var arfcn = cellIdentityLte.earfcn
            intSignalStrength = cellSignalStrengthLte.dbm
            networkStatus = "${Integer.toString(intSignalStrength)} dBm | $arfcn"
        } else if (cellInfo is CellInfoGsm) {
            val cellSignalStrengthGsm = cellInfo.cellSignalStrength
            val cellIdentityGsm = cellInfo.cellIdentity
            var arfcn = cellIdentityGsm.arfcn
            intSignalStrength = cellSignalStrengthGsm.dbm
            networkStatus = "${Integer.toString(intSignalStrength)} dBm | $arfcn"
        } else if (cellInfo is CellInfoWcdma) {
            val cellSignalStrengthWcdma = cellInfo.cellSignalStrength
            val cellIdentityWcdma = cellInfo.cellIdentity
            var arfcn = uarfcnToBand(cellIdentityWcdma.uarfcn)
            intSignalStrength = cellSignalStrengthWcdma.dbm
            networkStatus = "${Integer.toString(intSignalStrength)} dBm | $arfcn"
        } else if (cellInfo is CellInfoCdma) {
            val cellSignalStrengthCdma = cellInfo.cellSignalStrength
            intSignalStrength = cellSignalStrengthCdma.dbm
            networkStatus = "${Integer.toString(intSignalStrength)} dBm"
        }
    }
}
老大581

我得到了解决方案。问题出在 for 循环上。最新的信号强度在第一个循环中,因此以下循环将涵盖我需要的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android应用程序中查找从BLE设备获得的信号强度?

来自分类Dev

如何在Android应用中查找从BLE设备获得的信号强度?

来自分类Dev

如何在Verilog中获得信号强度

来自分类Dev

信号强度准确吗?

来自分类Dev

在Android中根据信号强度加载不同的wifi信号强度图像

来自分类Dev

IBM Worklight-无法在Android中获得网络信号强度

来自分类Dev

[离子]如何获得wifi信号强度值

来自分类Dev

是否有API或软件可以在Mac上获得准确的WiFi信号强度?

来自分类Dev

如何在Windows Phone 8.1中找到Wi-Fi连接的信号强度?

来自分类Dev

如何在Windows Phone 8.1中找到Wi-Fi连接的信号强度?

来自分类Dev

如何获取已连接WiFi Android的信号强度?

来自分类Dev

如何获取已连接WiFi Android的信号强度?

来自分类Dev

Android双SIM卡信号强度

来自分类Dev

wifi信号强度图标,如何更改?

来自分类Dev

iOS 8.3中的信号强度

来自分类Dev

无线信号强度

来自分类Dev

我如何获得有关wifi信号强度变化的通知?

来自分类Dev

获得相邻设备的接收信号强度

来自分类Dev

获得相邻设备的接收信号强度

来自分类Dev

Wifi - 自动归位以获得最佳信号强度

来自分类Dev

在IOS应用中获取并显示外围蓝牙RSSI信号强度

来自分类Dev

如何使用android SDK计算wifi和3g的信号强度?

来自分类Dev

如何在应用程序级别获得android全屏显示?

来自分类Dev

如何在浓缩咖啡中获得应用程序?

来自分类Dev

Android获取移动数据信号强度(API <17)

来自分类Dev

降低Android设备上的蓝牙信号强度

来自分类Dev

C ++ Wifi信号强度

来自分类Dev

获取WCDMA信号强度

来自分类Dev

如何查找已连接蓝牙设备的蓝牙信号强度

Related 相关文章

热门标签

归档