解决部分基站扫描过程中,没有位置区号LAC=-1的被过滤掉,但是个数还是被算进去的bug
authorsnickersun <scy@incartech.cn>
Fri, 28 Aug 2020 03:52:39 +0000 (11:52 +0800)
committersnickersun <scy@incartech.cn>
Fri, 28 Aug 2020 03:52:39 +0000 (11:52 +0800)
app/src/main/java/com/enqualcomm/support/utils/CellInfoUtil.java

index 1894b4e..fd1915c 100644 (file)
@@ -150,6 +150,13 @@ public class CellInfoUtil {
   }\r
   public static String getCellInfo(TelephonyManager telephonyManager, Runtime runtime) {\r
     ICLogger.i("LBS 延时获取基站信息");\r
+    /***\r
+     * MCC,Mobile Country Code,移动国家代码(中国的为460)。\r
+     * MNC,Mobile Network Code,移动网络号码(中国移动为0,中国联通为1,中国电信为2)。\r
+     * LAC,Location Area Code,位置区域码。\r
+     * CID,Cell Identity,基站编号。\r
+     * BSSS,Base station signal strength,基站信号强度。\r
+     */\r
     int maxstationCount = 0;\r
     String mccmnc;\r
     if (Build.VERSION.SDK_INT > 23) {\r
@@ -201,10 +208,43 @@ public class CellInfoUtil {
             StringBuilder gsmSbMulti = new StringBuilder();\r
 \r
           StringBuilder gsmSbMultiFZD = new StringBuilder();\r
+          StringBuilder gsmSbMulti_data = new StringBuilder();\r
 \r
+          StringBuilder gsmSbMultiFZD_data = new StringBuilder();\r
           int size=1;\r
-            if (neighboringCell_list != null && !neighboringCell_list.isEmpty())\r
-                size +=neighboringCell_list.size();\r
+            if (neighboringCell_list != null && !neighboringCell_list.isEmpty()) {\r
+              sortByRssi(neighboringCell_list);\r
+\r
+              Iterator cell = neighboringCell_list.iterator();\r
+\r
+\r
+              while(cell.hasNext()) {\r
+                NeighboringCellInfo mNeighboringCellInfo = (NeighboringCellInfo)cell.next();\r
+                if (mNeighboringCellInfo.getLac() == -1) {\r
+                  break;\r
+                }\r
+                gsmSbMulti_data.append(",");\r
+                gsmSbMulti_data.append(mNeighboringCellInfo.getLac());\r
+                gsmSbMulti_data.append("|");\r
+                gsmSbMulti_data.append(mNeighboringCellInfo.getCid());\r
+                gsmSbMulti_data.append("|");\r
+                gsmSbMulti_data.append( 150-Math.abs(mNeighboringCellInfo.getRssi()));\r
+\r
+                gsmSbMultiFZD_data.append(",");\r
+                gsmSbMultiFZD_data.append(mNeighboringCellInfo.getLac());\r
+                gsmSbMultiFZD_data.append(",");\r
+                gsmSbMultiFZD_data.append(mNeighboringCellInfo.getCid());\r
+                gsmSbMultiFZD_data.append(",");\r
+                gsmSbMultiFZD_data.append( 150-Math.abs(mNeighboringCellInfo.getRssi()));\r
+\r
+                maxstationCount ++;\r
+                if (maxstationCount == 5) {\r
+//                break;\r
+                }\r
+              }\r
+              size += maxstationCount;\r
+            }\r
+\r
             StringBuilder mmcmnc1 = new StringBuilder(mccmnc);\r
             mmcmnc1.insert(3, ",");\r
             gsmSbMulti.append(size);\r
@@ -216,6 +256,7 @@ public class CellInfoUtil {
             gsmSbMulti.append(gsmCell.getCid());\r
             gsmSbMulti.append("|");\r
             gsmSbMulti.append(150-Math.abs(getSignal(telephonyManager,runtime)));\r
+            gsmSbMulti.append(gsmSbMulti_data.toString());\r
 \r
 \r
           gsmSbMultiFZD.append(size);\r
@@ -229,38 +270,9 @@ public class CellInfoUtil {
           gsmSbMultiFZD.append(gsmCell.getCid());\r
           gsmSbMultiFZD.append(",");\r
           gsmSbMultiFZD.append(150-Math.abs(getSignal(telephonyManager,runtime)));\r
+          gsmSbMultiFZD.append(gsmSbMultiFZD_data.toString());\r
 \r
-          if (neighboringCell_list != null && !neighboringCell_list.isEmpty()) {\r
-              sortByRssi(neighboringCell_list);\r
-\r
-              Iterator cell = neighboringCell_list.iterator();\r
-\r
-\r
-            while(cell.hasNext()) {\r
-              NeighboringCellInfo mNeighboringCellInfo = (NeighboringCellInfo)cell.next();\r
-              if (mNeighboringCellInfo.getLac() == -1) {\r
-                break;\r
-              }\r
-                gsmSbMulti.append(",");\r
-                gsmSbMulti.append(mNeighboringCellInfo.getLac());\r
-                gsmSbMulti.append("|");\r
-                gsmSbMulti.append(mNeighboringCellInfo.getCid());\r
-                gsmSbMulti.append("|");\r
-                gsmSbMulti.append( 150-Math.abs(mNeighboringCellInfo.getRssi()));\r
-\r
-              gsmSbMultiFZD.append(",");\r
-              gsmSbMultiFZD.append(mNeighboringCellInfo.getLac());\r
-              gsmSbMultiFZD.append(",");\r
-              gsmSbMultiFZD.append(mNeighboringCellInfo.getCid());\r
-              gsmSbMultiFZD.append(",");\r
-              gsmSbMultiFZD.append( 150-Math.abs(mNeighboringCellInfo.getRssi()));\r
 \r
-                maxstationCount ++;\r
-              if (maxstationCount == 5) {\r
-//                break;\r
-              }\r
-            }\r
-          }\r
           ICLogger.i("LBS GsmCellLocation MultiStation "+ gsmSbMulti.toString());\r
           ICLogger.i("FZD LBS GsmCellLocation MultiStation "+ gsmSbMultiFZD.toString());\r
           if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", "LBS GsmCellLocation MultiStation "+ gsmSbMulti.toString());\r