9

我发现了很多获取单元 ID 和位置区域代码的代码,我使用下面的代码来获取单元 ID 和位置区域代码。

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation cellLocation = (GsmCellLocation) telephonyManager.getCellLocation();

int cid = cellLocation.getCid();
int lac = cellLocation.getLac();

问题是,当我使用 airtel-sim 卡时,它可以正常工作并给出 cell-id =4331 和 loc =610。但是当我使用 relience-sim 卡时,它会给出错误的结果 cell-id =11541 和 loc=18823。我该如何解决这个问题?

4

2 回答 2

1

解决方案在以下线程中突出显示:Android:CellID 并非在所有运营商上都可用?

简而言之,您需要getCid()在 3G 网络中使用0xffff. 以下是一个片段:

GsmCellLocation cellLocation = (GsmCellLocation)telm.getCellLocation();

new_cid = cellLocation.getCid() & 0xffff;
new_lac = cellLocation.getLac() & 0xffff;

希望有帮助

于 2014-03-24T07:05:25.127 回答
0

Cell ID 和 LAC id 因网络而异,正如您所提到的,您使用不同网络的两个不同 SIM 卡,因此您将获得不同的 cell 和 lac id,这些将不一样。因为一个运营商的小区 ID 将不同于其他网络,因为两个不同的塔用于不同的网络,并且它们相应地分配了两个 ID。

于 2015-11-05T11:45:16.857 回答