0

首先,这是我获取 lte rsrp(或其他)值的代码。此代码段在另一个 aysncTask 上运行。

 TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        int tempInt;
        while (isRunning) {
            try {
                List<CellInfo> cellInfoList = tm.getAllCellInfo();

                if (cellInfoList != null && cellInfoList.size() != 0) {
                        msg = handler.obtainMessage();
                        CellInfo cellInfo = cellInfoList.get(0);
                        result = -9999;
                        tempInt = 0;
                        if (cellInfo instanceof CellInfoWcdma) {
                            result = ((CellInfoWcdma) cellInfo).getCellSignalStrength().getDbm();
                            Log.e(TAG, "3G : " + result + "");
                        } else if (cellInfo instanceof CellInfoLte) {
                            result = ((CellInfoLte) cellInfo).getCellSignalStrength().getDbm();
                            Log.e(TAG, "LTE : " + result);
                        } else if (cellInfo instanceof CellInfoGsm) {
                            result = ((CellInfoGsm) cellInfo).getCellSignalStrength().getDbm();
                            Log.e(TAG, "GSM" + result);
                        } else if (cellInfo instanceof CellInfoCdma) {
                            result = ((CellInfoCdma) cellInfo).getCellSignalStrength().getDbm();
                            Log.e(TAG, "CDMA" + result);
                        }
.....

问题是,我不确定我得到的数据是否正确

当我让这个源在后台运行以查看 rsrp 值时,我使用命令 *123456# 运行 LG G3 的隐藏菜单。它显示了显示实时 rsrp 值的调试模式。

问题是,在大多数情况下,我在应用程序日志中获得的 rsrp 和隐藏菜单上的 rsrp 是不同的。我的应用显示大约 -3 ~ +3 更多。

为什么会这样?我的代码有问题吗?上面的代码没有时间间隔,在我强制关闭应用程序之前会继续。

4

1 回答 1

0

你的代码没有错。如果您查看 3GPP 标准文档,您会发现设备制造商在报告 RSRP 时给予了一定的空间,即 16 dB 的扩展,即它们必须在 +/-8dB 之内。您仍在该范围内的事实告诉我您的代码可能没问题。此外,与您的应用程序同时运行密码可能会给您带来冲突的读数。您真正应该做的是找到一个使用手机密码获得一致 RSRP 读数的地方(请务必关闭您的 LTE 和 Wifi,如果它们开启,您会受到干扰。我知道将您的如果您想获得 LTE RSRP,请关闭 LTE,但这就是它的设计方式。)。一旦你得到一个好的阅读,重新打开你的LTE,但请保持 Wifi 关闭(它仍然会干扰)并打开您的应用程序以从那里读取 RSRP。如果您的应用程序 RSRP 在电话现场模式报告的 RSRP 的 +/-8dB 范围内,那么您很好。

为了您的信息,这是我制作的一个 android 应用程序,它在其他 LTE 参数中获取 RSRP: https ://github.com/parksjg/IndoorLTE3a

于 2017-05-05T17:05:36.153 回答