オブジェクトを使用してネットワーク セル ID を取得できGsmCellLocation
ます。しかし、CDMA、3G、HSDPA、または UMTS を使用している場合、セル ID を取得できません。3G 接続でを使用するGsmCellLocation.getCid()
と、Cid ではない LCID (論理チャネル ID) と呼ばれるものが取得されます。以下に示す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 セル ID 情報を取得できますか?