2012-02-21 4 views
0

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

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 

Вы знаете, почему? Связано ли это с оборудованием? С другим телефоном, я всегда «Сосед клетка является нулевой»

Спасибо

ответ

0

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

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

1

Проверьте, youu использует телефон 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

Спасибо, но я пользуюсь телефоном GSM –

Смежные вопросы