From: snickersun Date: Fri, 28 Aug 2020 03:52:39 +0000 (+0800) Subject: 解决部分基站扫描过程中,没有位置区号LAC=-1的被过滤掉,但是个数还是被算进去的bug X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=48a6532e8e0085657ef46fe6bfb92182b112eba4;p=protocol_srv.git 解决部分基站扫描过程中,没有位置区号LAC=-1的被过滤掉,但是个数还是被算进去的bug --- diff --git a/app/src/main/java/com/enqualcomm/support/utils/CellInfoUtil.java b/app/src/main/java/com/enqualcomm/support/utils/CellInfoUtil.java index 1894b4e8..fd1915c1 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/CellInfoUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/CellInfoUtil.java @@ -150,6 +150,13 @@ public class CellInfoUtil { } public static String getCellInfo(TelephonyManager telephonyManager, Runtime runtime) { ICLogger.i("LBS 延时获取基站信息"); + /*** + * MCC,Mobile Country Code,移动国家代码(中国的为460)。 + * MNC,Mobile Network Code,移动网络号码(中国移动为0,中国联通为1,中国电信为2)。 + * LAC,Location Area Code,位置区域码。 + * CID,Cell Identity,基站编号。 + * BSSS,Base station signal strength,基站信号强度。 + */ int maxstationCount = 0; String mccmnc; if (Build.VERSION.SDK_INT > 23) { @@ -201,10 +208,43 @@ public class CellInfoUtil { StringBuilder gsmSbMulti = new StringBuilder(); StringBuilder gsmSbMultiFZD = new StringBuilder(); + StringBuilder gsmSbMulti_data = new StringBuilder(); + StringBuilder gsmSbMultiFZD_data = new StringBuilder(); int size=1; - if (neighboringCell_list != null && !neighboringCell_list.isEmpty()) - size +=neighboringCell_list.size(); + if (neighboringCell_list != null && !neighboringCell_list.isEmpty()) { + sortByRssi(neighboringCell_list); + + Iterator cell = neighboringCell_list.iterator(); + + + while(cell.hasNext()) { + NeighboringCellInfo mNeighboringCellInfo = (NeighboringCellInfo)cell.next(); + if (mNeighboringCellInfo.getLac() == -1) { + break; + } + gsmSbMulti_data.append(","); + gsmSbMulti_data.append(mNeighboringCellInfo.getLac()); + gsmSbMulti_data.append("|"); + gsmSbMulti_data.append(mNeighboringCellInfo.getCid()); + gsmSbMulti_data.append("|"); + gsmSbMulti_data.append( 150-Math.abs(mNeighboringCellInfo.getRssi())); + + gsmSbMultiFZD_data.append(","); + gsmSbMultiFZD_data.append(mNeighboringCellInfo.getLac()); + gsmSbMultiFZD_data.append(","); + gsmSbMultiFZD_data.append(mNeighboringCellInfo.getCid()); + gsmSbMultiFZD_data.append(","); + gsmSbMultiFZD_data.append( 150-Math.abs(mNeighboringCellInfo.getRssi())); + + maxstationCount ++; + if (maxstationCount == 5) { +// break; + } + } + size += maxstationCount; + } + StringBuilder mmcmnc1 = new StringBuilder(mccmnc); mmcmnc1.insert(3, ","); gsmSbMulti.append(size); @@ -216,6 +256,7 @@ public class CellInfoUtil { gsmSbMulti.append(gsmCell.getCid()); gsmSbMulti.append("|"); gsmSbMulti.append(150-Math.abs(getSignal(telephonyManager,runtime))); + gsmSbMulti.append(gsmSbMulti_data.toString()); gsmSbMultiFZD.append(size); @@ -229,38 +270,9 @@ public class CellInfoUtil { gsmSbMultiFZD.append(gsmCell.getCid()); gsmSbMultiFZD.append(","); gsmSbMultiFZD.append(150-Math.abs(getSignal(telephonyManager,runtime))); + gsmSbMultiFZD.append(gsmSbMultiFZD_data.toString()); - if (neighboringCell_list != null && !neighboringCell_list.isEmpty()) { - sortByRssi(neighboringCell_list); - - Iterator cell = neighboringCell_list.iterator(); - - - while(cell.hasNext()) { - NeighboringCellInfo mNeighboringCellInfo = (NeighboringCellInfo)cell.next(); - if (mNeighboringCellInfo.getLac() == -1) { - break; - } - gsmSbMulti.append(","); - gsmSbMulti.append(mNeighboringCellInfo.getLac()); - gsmSbMulti.append("|"); - gsmSbMulti.append(mNeighboringCellInfo.getCid()); - gsmSbMulti.append("|"); - gsmSbMulti.append( 150-Math.abs(mNeighboringCellInfo.getRssi())); - - gsmSbMultiFZD.append(","); - gsmSbMultiFZD.append(mNeighboringCellInfo.getLac()); - gsmSbMultiFZD.append(","); - gsmSbMultiFZD.append(mNeighboringCellInfo.getCid()); - gsmSbMultiFZD.append(","); - gsmSbMultiFZD.append( 150-Math.abs(mNeighboringCellInfo.getRssi())); - maxstationCount ++; - if (maxstationCount == 5) { -// break; - } - } - } ICLogger.i("LBS GsmCellLocation MultiStation "+ gsmSbMulti.toString()); ICLogger.i("FZD LBS GsmCellLocation MultiStation "+ gsmSbMultiFZD.toString()); if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", "LBS GsmCellLocation MultiStation "+ gsmSbMulti.toString());