目前,我正在使用网络中的单元对Android进行三边测量。它比我想像的还要准确。但不如我希望的那样准确。因此,我想涉及的塔比getNeighboringCellInfo获得的塔还要多。我想获取范围内每个塔的小区ID和信号强度。每个网络运营商。有没有一种方法可以“ping”这些塔,以便它们使用cellID,Lac和信号强度进行回答?以某种方式这必须是可能的。
我可以并行扫描2G和3G(和4G)吗?还是可以通过编程在它们之间切换?
有什么建议么?希望我足够清楚...

最佳答案

您似乎正在寻找TelephonyManagergetNeighboringCellInfo()

这是一个简单而直接的示例:

/* first you wanna get a telephony manager by asking the system service */
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

/* then you can query for all the neighborhood cells */
List<NeighboringCellInfo> neighbors = tm.getNeighboringCellInfo();

/* here's something you can get from NeighboringCellInfo */
for (NeighboringCellInfo n : neighbors) {
    Log.v("CellInfo", "" + n.getCid());
    Log.v("CellInfo", "" + n.getLac());
    Log.v("CellInfo", "" + n.getPsc());
    Log.v("CellInfo", "" + n.getRssi());
}

确保在 list 文件中包含所需的所有权限(例如ACCESS_COARSE_LOCATIONREAD_PHONE_STATE),具体取决于您要使用的API,否则它将崩溃。

哦,顺便说一句,这仅适用于2G。 3G或更高版本不支持这种操作。

关于java - 获取范围内所有蜂窝塔的CID,LAC和信号强度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12491256/

10-10 07:11