2012-02-17 17 views
8

Próbuję uzyskać informacje o sąsiednich komórkach, które mój telefon może "zobaczyć" atm. jak na razie dobrze. Robię to tak:Android: NeighboringCellInfo zawsze puste!? czemu?

telManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
//... 
ArrayList<NeighboringCellInfo> neighboringCellList = (ArrayList<NeighboringCellInfo>) telManager.getNeighboringCellInfo(); 

Niestety lista ta okazuje się być pusta przez cały czas. nawet w różnych miejscach. Mieszkam w Berlinie, więc nie sądzę, że tak jest, ponieważ tak naprawdę dostępna jest tylko jedna komórka!

zmiana: moje uprawnienia wyglądać następująco:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
+1

uprawnienia są ustawione? – WarrenFaith

+0

tak! (patrz zaktualizowany wpis) – xenonite

+1

Czy znalazłeś już rozwiązanie tego problemu? Jestem na Galaxy Nexus. Próbowałem wszystkich sugestii poniżej, ale nadal nie otrzymuję niczego w sąsiednich komórkach. – ishan

Odpowiedz

3

Widziałem kilka pytań dotyczących tej samej kwestii, ale wydaje się, że żaden z nich nie ma dobrego i deterministyczne rozwiązanie. Najczęstszą sugestią jest upewnienie się, że masz odpowiednie uprawnienia (co widzę w twoim pytaniu), a niektórzy twierdzą, że działa to tylko na 2G, a nie 3G.

Proszę spojrzeć na następujące podobne pytania. To może skierować Cię w kilku nowych kierunkach:

getNeighboringCellInfo() returning null list

Null Issue with NeighboringCellInfo, CID and LAC

Get neighboring cell in Android returns null

0

getNeighboringCellInfo() jest przestarzałe w Androidzie. Powinieneś użyć getAllCellInfo() i zapisać wynik tego w List i używając pętli na każdym elemencie listy zdecyduj, który sąsiad używa element.isRegistered(). Sąsiednie komórki mają isRegistered() == false.

Powiązane problemy