Подтвердить что ты не робот

Как получить мобильный номер текущей сим-карты в реальном устройстве?

Мне нужно сделать приложение, которое показывает контактный номер SIM-карты, которая используется в ячейке. Для этого мне нужно использовать класс TelephonyManager. Могу ли я получить информацию о его использовании?

4b9b3361

Ответ 1

Вы можете использовать TelephonyManager, чтобы сделать это:

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

Документация для getLine1Number() говорит, что этот метод вернет null, если номер "недоступен", но он не говорит, когда номер может быть недоступен.

Вам нужно предоставить ваше приложение разрешение сделать этот запрос, добавив в свой манифест следующее:

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

(Вы не должны использовать TelephonyManager.getDefault(), чтобы получить TelephonyManager как который является закрытым недокументированным вызовом API и может измениться в будущем.)

Ответ 2

Привет На самом деле это мой вопрос, но я ничего не получил. Теперь у меня есть номер мобильного телефона и его адрес электронной почты с определенного Android-устройства Android (Android Mobile). Через 90% пользователей, использующих приложение App на Android Mobile.And теперь я получаю Mobile no и идентификатор электронной почты. Через это приложение API. Очень просто использовать этот код ниже.

            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);
    }

и импортируйте этот API

    import android.accounts.Account;
    import android.accounts.AccountManager;

Ответ 3

Мне нужно сделать приложение, которое показывает контактный номер SIM-карты, которая используется в ячейке. Для этого мне нужно использовать класс Telephony Manager. Могу ли я получить информацию о его использовании?

Да, Вы должны использовать Telephony Manager, если вы вообще не нашли контакт. пользователя; Вы можете получить Sim Serial Number of Sim Card и Imei Количество Android-устройств, используя тот же класс Telephony Manager...

Добавить разрешение:

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

Импорт

import android.telephony.TelephonyManager;

Используйте приведенный ниже код:

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

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

         // get SimSerialNumber
         simSerialNumber = tm.getSimSerialNumber();

Ответ 4

Ну, все могут быть временными хаками, но нет способа получить мобильный номер пользователя. Это противоречит этической политике.

Например, один из приведенных выше ответов предлагает получить все счета и извлечь их оттуда. И это уже не работает! Все это только хаки.

Только оператор получает номер мобильного телефона. Если у вас есть связь с мобильными операторами, такими как Aitel, Vodafone и т.д., Вы можете получить номер мобильного телефона пользователя в заголовке запроса с мобильного телефона при подключении через интернет через интернет.

Не уверен, что какой-либо производитель связывает, чтобы получить определенные разрешения, может помочь - не исследовать эту область, но ничто не документировано по крайней мере.

Ответ 5

Иногда вы можете вернуть номер телефона с запросом USSD к вашему оператору. Например, я могу получить свой номер телефона, набрав * 116 # Вероятно, это можно сделать в приложении, я думаю, если бы кто-то мог уловить ответ USSD. Если это не метод, который я бы рекомендовал использовать в приложении, которое должно быть распространено, код может даже отличаться между операторами.

Ответ 6

Как многие говорили:

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

Доступность зависит строго от носителя и способа кодирования номера на SIM-карте. Если он жестко запрограммирован компанией, которая делает SIM-карты или сам мобильный оператор. Это возвращает то же, что и в настройках → о телефоне.