Jak uzyskać numer telefonu komórkowego aktualnej karty sim w rzeczywistym urządzeniu?

Muszę złożyć wniosek, który pokazuje numer kontaktowy karty SIM, która jest używana w komórce. Do tego muszę użyć klasy TelephonyManager. Czy Mogę uzyskać szczegółowe informacje na temat jego użytkowania?

Author: CopsOnRoad, 2010-02-05

6 answers

Możesz użyć TelephonyManager aby to zrobić:

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
String number = tm.getLine1Number();

Dokumentacja dla getLine1Number() mówi, że ta metoda zwróci null jeśli liczba jest "niedostępna", ale nie mówi, kiedy liczba może być niedostępna.

Musisz dać aplikacji uprawnienia do tego zapytania dodając następujące do manifestu:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

(nie powinieneś używać TelephonyManager.getDefault(), aby uzyskać TelephonyManager jako , które jest prywatnym nieudokumentowanym wywołaniem API i może się zmienić w future .)

 64
Author: Dave Webb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-30 08:16:59

Witam właściwie to jest to samo pytanie ale nic nie dostałem.Teraz mam numer telefonu komórkowego i jego E-Mail-Id z konkretnego urządzenia Android real (Android Mobile).Teraz dni 90% osób korzystających z aplikacji what ' s App na Android Mobile.A teraz dostaję numer telefonu komórkowego i E-MAIL-ID za pośrednictwem tego interfejsu API aplikacji.Jego bardzo prosty w użyciu patrz poniższy kod.

            AccountManager am = AccountManager.get(this);
            Account[] accounts = am.getAccounts();
      for (Account ac : accounts) 
       {
        acname = ac.name;

        if (acname.startsWith("91")) {
            mobile_no = acname;
        }else if(acname.endsWith("@gmail.com")||acname.endsWith("@yahoo.com")||acname.endsWith("@hotmail.com")){
            email = acname;
        }

        // Take your time to look at all available accounts
        Log.i("Accounts : ", "Accounts : " + acname);
    }

I zaimportuj ten API

    import android.accounts.Account;
    import android.accounts.AccountManager;
 6
Author: Amarnath Baitha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-13 09:15:32

Muszę złożyć wniosek, który pokazuje numer kontaktowy karty SIM, która jest używana w komórce. W tym celu muszę skorzystać z klasy Menedżera telefonii. Czy Mogę uzyskać szczegółowe informacje na temat jego użytkowania?

Tak, Musisz użyć menedżera telefonii; jeśli w ogóle nie znalazłeś kontaktu nr. użytkownika; Możesz uzyskać numer seryjny karty SIM i numer Imei. Urządzenia z systemem Android za pomocą tej samej klasy Menedżera telefonii...

Dodaj uprawnienie:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

Import:

import android.telephony.TelephonyManager;

Użyj poniższego kod:

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

         // get IMEI
         imei = tm.getDeviceId();

         // get SimSerialNumber
         simSerialNumber = tm.getSimSerialNumber();
 3
Author: Yasar Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-29 06:31:25

Cóż, wszystko może być tymczasowe hacki, ale nie ma sposobu, aby uzyskać numer telefonu komórkowego użytkownika. Jest to sprzeczne z Polityką etyczną.

Na przykład jedna z powyższych odpowiedzi sugeruje zdobycie wszystkich kont i wyciągnięcie stamtąd. I to już nie działa! Wszystkie to tylko hacki.

Jedynym sposobem, aby uzyskać numer telefonu komórkowego użytkownika jest przejście przez operatora. Jeśli masz połączenie z operatorami komórkowymi, takimi jak Aitel, Vodafone itp., możesz uzyskać numer telefonu komórkowego użytkownika w nagłówku żądania od mobile słuchawki po podłączeniu przez internet w sieci komórkowej.

Nie wiem, czy jakiś producent przywiązuje ups, aby uzyskać określone uprawnienia może pomóc - nie zbadałem tego obszaru, ale przynajmniej nic udokumentowanego.

 1
Author: Amit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-28 05:27:37

Czasami można cofnąć numer telefonu z żądaniem USSD do operatora. Na przykład mogę uzyskać numer telefonu, wybierając * 116# Prawdopodobnie można to zrobić w aplikacji, myślę, że Jeśli odpowiedź USSD może zostać złapana. Oczywiście nie jest to metoda, którą polecam używać w aplikacji, która ma być rozprowadzana, kod może się nawet różnić między operatorami.

 0
Author: ziggestardust,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-18 11:51:54

Jak wielu powiedziało:

String phoneNumber = TelephonyManager.getDefault().getLine1Number();

Dostępność zależy ściśle od operatora i sposobu zakodowania numeru na karcie SIM. Jeśli jest zakodowany na twardo przez firmę, która tworzy The SIMs lub przez samego operatora komórkowego. Zwróci to to samo, co w Ustawieniach - > o telefonie.

 -2
Author: Lukas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-14 13:46:13