我可以使用GsmCellLocation
对象获取我的网络单元ID。但当我在CDMA,3G,HSDPA或UMTS .....我无法获得小区ID。使用带有3G连接的GsmCellLocation.getCid()
检索称为LCID(逻辑信道ID)的不是Cid的东西。我使用的代码得到如下所示的GSM小区ID:我在CDMA连接时如何获得网络小区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细胞ID信息?
最好在java中使用operator instanceof。如果(GsmCellLocation的单元格)... – ofskyMohsen 2017-07-09 04:33:55