1

3G ネットワークの間違ったセル ID を取得しています。2G のセル ID の正しい値を取得しました。どこで間違っているのかわかりません。助けてください

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

        //Cell Id, LAC 
        int cid = cellLocation.getCid();
        int lac = cellLocation.getLac();

        //MCC
        String MCC =telephonyManager.getNetworkOperator();
        int mcc = Integer.parseInt(MCC.substring(0, 3));
        String mcc1 = String.valueOf(mcc);

        //Operator name
        String operatoprName = telephonyManager.getNetworkOperatorName();

AndroiManifest.xmlファイルACCESS_COARSE_LOCATIONACCESS_NETWORK_STATEにも許可を与えました

4

1 に答える 1

1

ソリューションは次のスレッドで強調表示されています: Android: CellID はすべてのキャリアで利用できませんか?

つまり、3G ネットワークでは getCid() から取得した番号を 0xffff でマスクする必要があります。以下はスニペットです:

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

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

それが役立つことを願っています

于 2014-01-29T14:42:37.860 に答える