Соседние клетки имеют -1 для CID и LAC - PullRequest
0 голосов
/ 21 февраля 2012

В Android я пытаюсь получить информацию о соседних ячейках.Я использую следующий фрагмент кода

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
List<NeighboringCellInfo> neighborCells = telephonyManager.getNeighboringCellInfo();
if (neighborCells == null) {
    Log.d("cells", "Neighbor cells is null");
} else {
    for (NeighboringCellInfo cell : neighborCells) {
        Log.d("cells", cell.getCid()+"-"+cell.getLac()+" "+(-113+cell.getRssi()*2)+"dB");
    }
}

Используя logcat, я получаю следующий вывод

D/cells   ( 7668): Neighbor cell: -1--1 -81dB
D/cells   ( 7668): Neighbor cell: -1--1 -113dB
D/cells   ( 7668): Neighbor cell: -1--1 -113dB

Знаете ли вы, почему?Это связано с оборудованием?С другим телефоном я получаю всегда "Соседние ячейки нулевые"

Спасибо

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Проверьте, используете ли вы телефон CDMA или телефон GSM.NeighboringCellInfo работает только для телефонов GSM, поскольку у вас нет соседних вышек для CDMA.CDMA имеет глобально уникальный идентификатор сети.

    TelephonyManager mManager_;
     mManager_ = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

    if(mManager_.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA){

        //CDMA PHONE

    }   

    else if(mManager_.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM){

        //GSM PHONE

    }

    uses permission: android.permission.ACCESS_NETWORK_STATE

надеюсь, это поможет!

0 голосов
/ 22 февраля 2012

Хорошо. Я нашел решение, мне нужно было включить опцию «использовать только сети 2G». Что было бы хорошо, так это возможность включить эту опцию из моего приложения. Кажется это невозможно, но странно, потому что это приложение делает это ...

Кто-нибудь знает, почему у меня больше информации о сотах 2G, чем 3G?

...