我可以使用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