2013-07-23 8 views
9

Znalazłem tak dużo kodu, który pobiera identyfikator komórki i kod obszaru lokalizacji, a kod poniżej służy do pobierania identyfikatora komórki i kodu obszaru lokalizacji.Jak uzyskać poprawny identyfikator komórki i kod obszaru lokalizacji w systemie Android?

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

int cid = cellLocation.getCid(); 
int lac = cellLocation.getLac(); 

Problemem jest to, kiedy używam karty airtel-SIM działa dobrze i dać komórek-id = 4331 i Loc = 610. Ale kiedy używam karty-karty-cierpliwości, to daje ona nieprawidłowy wynik cell-id = 11541 i loc = 18823. Jak mogę rozwiązać ten problem?

+0

Witam, używam kodu z adresu http://sunil-android.blogspot.in/2013/01/convert-celllocation-to-real-location.html, aby pobrać lokalizację i działa dobrze dla airtel, ale w przypadku relience nie działa. jak wiem, oznacza to, że kod obszaru lokalizacji i identyfikator komórki, które otrzymam w przypadku zgodności, są nieprawidłowe. jakaś pomoc? – User10001

+0

Istnieje wiele aplikacji, które pokazują poprawny identyfikator komórki, ale mój kod nie działa na karcie SIM 3g. – User10001

+0

jaki jest twój wynik z twoją symulacją relience za pomocą 'cid = cellLocation.getCid() & 0xffff;'? – sschrass

Odpowiedz

0

Rozwiązania są podświetlone w wątku: Android: CellID not available on all carriers?

W skrócie trzeba zamaskować numer otrzymasz od getCid() gdy w sieci 3G z 0xffff. Poniżej znajduje się fragment:

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

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

nadzieję, że pomoże

+0

Próbowałem już tego. – User10001

0

identyfikatory komórki i identyfikatory LAC są różne w oparciu o sieci, jak już wspomniano, że używasz dwóch różnych kart SIM różnych sieci tak dostaniesz inną komórkę i identyfikatory szelek nie będą takie same. Ponieważ identyfikator komórki jednego operatora będzie inny niż w innej sieci, ponieważ dwie różne wieże są używane w różnych sieciach i mają przypisane odpowiednio oba identyfikatory.

Powiązane problemy