我可以使用GsmCellLocation
对象获取我的网络单元 ID。但是当我使用 CDMA、3G、HSDPA 或 UMTS 时……我无法获得 Cell ID。使用GsmCellLocation.getCid()
3G 连接检索称为 LCID(逻辑通道 ID)的东西,它不是 Cid。我用来获取 Gsm 小区 ID 的代码如下所示:
private PhoneStateListener mPhoneLocationListener = new PhoneStateListener() {
public void onCellLocationChanged(CellLocation location) {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation location2 = (GsmCellLocation) tm.getCellLocation();
cellId = location2.getCid();
}
}
但是当我换行时:
GsmCellLocation location2 = (GsmCellLocation) tm.getCellLocation();
至 :
CdmaCellLocation location2 = (CdmaCellLocation) tm.getCellLocation();
即使我强制我的设备仅连接到 CDMA,也会抛出异常,CastException
说不能投射GsmCellLocation
到CdmaCellLocation
。
那么我怎样才能得到 3g cell id 信息呢?