2011-11-10 14 views
6

Android zapewnia następującą metodę w celu ustalenia z operatorem sieci: http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkOperatorName()Android Jak rozpoznać operatora w sieci CDMA?

Jednak nawet dokumentacja wyraźnie mówi:

Zwraca alfabetycznego nazwę zarejestrowanego operatora bieżącym. Dostępność: tylko wtedy, gdy użytkownik jest zarejestrowany w sieci. Wynik może być zawodny w sieciach CDMA (użyj funkcji getPhoneType(), aby określić, czy w sieci CDMA).

Problemem jest to, że potrzebujemy niezawodne sposób wykrywania nośnika, dzięki czemu możemy zidentyfikować źródło ruchu. Czy ktoś miał podobny problem, a jeśli tak, jakie jest najlepsze rozwiązanie?

+0

Well, użyj metody przewidzianej w link, jeśli zwraca null lub nieprawidłowe wyniki używać getPhoneType(). – Jack

+0

getPhoneType powie nam, że jesteśmy w sieci CDMA, ale musimy zidentyfikować **, którą ** sieć CDMA jesteśmy na (tj. Który operator) – rbanikaz

Odpowiedz

-1

Myślisz, że może to był jeden z prekursorów Google obsługujących wsparcie dla cdmy? Zagraj w ramach lub znajdź inny plac zabaw, który słyszę, jak Google mówi. No i to, że aplikacje na nośniki wypalane w romach czasami pozostawiały dziury w bezpieczeństwie. Co do możliwej odpowiedzi na twoje pytanie ... skąd można pobrać informacje? Ustawienia APN mogą informować ciebie lub asercie do znanej linii operatora w build.prop, która może pobrać informacje, które mogą być mi potrzebne na przykład. (Robię hobby-romy). Z drugiej strony, jeśli fizycznie sprawdzasz telefon, nośnik jest zwykle oznaczony marką;) Z jakiej perspektywy pobierasz informacje?

Rob

0

Obecnie poszukuję również rozwiązania tego problemu. Zgodnie z tym thread można użyć CdmaCellLocation.getNetworkId i CdmaCellLocation.getSystemId. Ponieważ w Niemczech nie ma sieci CDMA, nie mogę sprawdzić, czy to działa ...

2

Mój telefon działa w sieci Verizon Wireless. Codziennie przejeżdżam przez obszary, w których mój telefon jest w roamingu i/lub ma słaby odbiór. Używając warstwy skryptowej dla Androida, będę logował wyniki wywołania getOperatorName() raz na dziesięć minut w ciągu następnego tygodnia.

Istnieje another method, który może działać w aplecie android.telephony.cdma. W dokumentacji brakuje oświadczenia o wiarygodności. Zamiast nazwy otrzymasz tylko identyfikator sieci. Niestety wymaga to poziomu 5 interfejsu API zamiast 1, jeśli ma to znaczenie dla Ciebie.

Zapisywanie wyników metody getOperatorName() nie przyniosło żadnych rezultatów. Kiedy nie miałem usługi, zawsze zwracano wartość zerową, a kiedy miałem serwis, zwracano "Verizon Wireless". Jestem pewien, że to nie jest bardzo pomocne.

Edytuj: Dodawanie i korekta. dodane - Wyjaśnienie linku Poprawione - poziom API 5 nie 17

Edit 2: Wyniki testów

+0

Witamy w przepełnieniu stosu. Łącząc, spróbuj dodać istotne części do swojej odpowiedzi tutaj. – Cezar

+0

Przykro mi. Nie bardzo rozumiem, co masz na myśli. Czy chcesz dodać komentarz zawierający istotne części, czy też powinienem podać więcej informacji, aby wyjaśnić link, który umieściłem w mojej odpowiedzi? –

+0

Nie ma problemu.Zwykle chciałbym zobaczyć istotne części informacji zawartych w odsyłaczu refrerred w odpowiedzi. Czasami możliwe jest podanie istotnych informacji w taki sposób, aby osoba pytająca mogła zaimplementować rozwiązanie bez czytania całego odwołania. Jeśli uważasz, że tak nie jest, nie martw się i witaj ponownie =) – Cezar

Powiązane problemy