Chcę uzyskać numer telefonu urządzenia z Androidem. Używam tego kodu:
TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber= tm.getLine1Number();
Na moim telefonie (HTC Wildfire) nie mogę uzyskać numeru telefonu - otrzymuję tylko pusty ciąg. Jeśli uruchomię kod na emulatur, zwykle wyświetlany jest numer telefonu.
Jeśli przejdę do Ustawienia => Informacje o telefonie => Tożsamość telefonu-> Numer telefonu, numer telefonu to „Nieznany”.
Gdzie jest problem? Czy coś jest nie tak z moją kartą SIM?
Odpowiedzi:
35 dla odpowiedzi nr 1W naszym projekcie mieliśmy ten sam problem. Wniosek był taki, że zależy to od karty SIM.
Co się z nami stało:
- Galaxy S z kartą AT&T SIM: może odczytać numer telefonu, Ustawienia pokazuje numer
- Ta sama Galaxy z europejską kartą SIM: nie można odczytać numeru i „nieznane” w Ustawieniach (telefon komórkowy był doskonale funkcjonalny, po prostu nie mógł odczytać numeru)
Zgłoszono to również na innych forach.
W końcu postanowiliśmy poprosić użytkownika o numer telefonu. Trochę bardziej zaangażowany, w rzeczywistości: if( "SIM card present" && "cannot read the cell number") "ask user";
. W przeciwnym razie będziemy nadal podsłuchiwać użytkownika, który nie ma karty SIM.
11 dla odpowiedzi nr 2
Zamiast numeru telefonu użyj numeru seryjnego karty SIM, który zawsze istnieje i zawsze jest prawidłową wartością.
telephonyManager.getSimSerialNumber();
Numer seryjny karty SIM jest unikalny przynajmniej w obrębie operatora. Więc w połączeniu z
telephonyManager.getNetworkOperator();
będziesz mieć unikalny identyfikator subskrybenta w danym kraju.
W połączeniu z
telephonyManager.getNetworkCountryIso();
będziesz mieć globalnie unikalny identyfikator subskrybenta.
Mam nadzieję, że to pomoże.
Twoje zdrowie.
5 dla odpowiedzi nr 3
Karta SIM przechowuje numer telefonu i można go edytowaćprzez Ciebie. Nie mogę powiedzieć na Androida, ale w WM możesz łatwo edytować swój numer telefonu, który jest zapisany na karcie SIM. Oczywiście nie oznacza to, że możesz zmienić swój numer telefonu na bieżąco. Właściwie możesz tam wpisać dowolną liczbę, a programy uwierzą, że to Twój prawdziwy numer :)
2 dla odpowiedzi № 4
Kiedy przeniosłem kartę SIM do nowego telefonu, czasami stwierdziłem, że numer telefonu nie pojawia się w Ustawieniach -> Informacje o telefonie -> Status -> Mój numer telefonu.
Moje punkty danych:
- AT&T Atrix umieszczając w nim zupełnie nową kartę SIM mówi „Voice MSISDN Line1 null”.
- Po włożeniu do niej nowej karty SIM T-Mobile G1 poprawnie wyświetla numer telefonu.
- Przeniesienie karty SIM T-Mobile G2 ze starego G1 na „Mówi się”.
0 dla odpowiedzi № 5
Używam karty SIM, która pozwala tylko na transfer danych. Nie zezwala na połączenia telefoniczne.
Kiedy próbuję uzyskać numer telefonu getLine1Number()
, Dostaję pusty ciąg.
0 dla odpowiedzi № 6
Numer telefonu dostępny, jeśli karta SIM jestpozwala mu dostać. W naszej firmie znalazłem tylko jedną kartę SIM, na którą można uzyskać numer. Sprawdzam tę kartę SIM na wszystkich urządzeniach z Androidem. Wszystko ok. GetLine1Number () jest w porządku. Teraz szukam numeru telefonu dla innej karty SIM. Wyślij sms na nasz serwer sms lub inne urządzenie z Androidem (z przetwarzaniem SMS-ów)