电话管理器getCi()需要LTE帮助

时间:2017-07-27 12:15:25

标签: android

我对Android编码很陌生,到目前为止一直很有趣。我遇到了使用电话管理器的问题,特别是针对LTE。我的getCi()方法返回一个正确的值,但不是我需要它的格式。例如,返回的值是25605.我可以使用什么代码来获取此数字并创建正确的Node B ID和Cell ID值,这是我希望我的应用程序显示的内容?

TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);


    List<CellInfo> cellInfos = tm.getAllCellInfo();

    for(CellInfo cellInfo : cellInfos)
    {
        //CellInfoWcdma cellInfoWcdma = (CellInfoWcdma) cellInfo;
        CellInfoLte cellInfoLte = (CellInfoLte)cellInfo;
        //CellInfoGsm cellInfoGsm = (CellInfoGsm)cellInfo;

        //CellIdentityWcdma cellIdentityWcdma = cellInfoWcdma.getCellIdentity();
        //CellSignalStrengthWcdma cellSignalStrengthWcdma = cellInfoWcdma.getCellSignalStrength();
        CellIdentityLte cellIdentityLte = cellInfoLte.getCellIdentity();
        CellSignalStrengthLte cellSignalStrengthLte = cellInfoLte.getCellSignalStrength();

        netId = cellIdentityLte.getCi();
        netId2 = cellSignalStrengthLte.getLevel();
        //netId = cellIdentityWcdma.getCid() & 0xffff;
        //netId2 = cellSignalStrengthWcdma.getAsuLevel();
        //netId3 = netId2*2 -113;

这里是代码

1 个答案:

答案 0 :(得分:0)

您必须转换为HEX的cellIdentityLte.getCi()的值。

然后转换为DEC的最后两个符号,这是本地小区ID。

您转换为DEC的其余部分(最后两个符号除外),这是eNodeB。

我不懂Java,但这里有Excel公式。我想你会得到逻辑

eNodeB =HEX2DEC(LEFT(DEC2HEX(E2),LEN(DEC2HEX(E2))-2)) 
Local_Cell_ID =HEX2DEC(RIGHT(DEC2HEX(E2),2))

其中E2是cellIdentityLte.getCi()

的输出

我测试了这个并检查了单元配置。值是相同的。