2013-03-05 3 views
-1

Я пытаюсь следующий код, чтобы получить Системный номер телефонAndroid приложение, чтобы получить систему номер телефона

TelephonyManager tMgr =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE); 
mPhoneNumber = tMgr.getLine1Number(); 

Но это не работает.

В моем телефоне, я использую

Настройки-> О телефоне -> Status-телефон

есть простое приложение, я могу использовать? , Я пишу из Турции. делает ли сим-карту разницу?

+1

Если номер телефона неизвестен в статусе, проблема может быть связана с SIM-картой. Если на SIM-карте номер телефона неизвестен, то Android или ваше приложение для Android не имеют ничего общего с этим. Я предлагаю вам попробовать его с другой SIM-картой, если это возможно, и изучить вашу проблему в зависимости от результата. –

ответ

0

Вы можете попробовать что-то вроде этого. Он работает отлично.

public String getPhoneNumber(Context context) { 
     TelephonyManager mTelephonyMgr; 
     mTelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
     String num = mTelephonyMgr.getLine1Number(); 
     return fillPhoneNumber(num); 
    } 
private String fillPhoneNumber(String num) { 
    try{ 
     if (num != null && num.length() > 0) { 
      if (num.length() >= 9) { 
       num = num.replaceAll("\\D", ""); 
       if (num.substring(0, 1).equals("8")) { 
        num = "+3" + num; 
       } else if (num.substring(0, 1).equals("0")) { 
        num = "+38" + num; 
       } else if (num.substring(0, 1).equals("3")) { 
        num = "+" + num; 
       } 
      } 
      return num; 
     } 

    }catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

Примечание: Не все телефоны возвращают номер телефона.

0

Не все телекоммуникационные перевозчики хранят номер телефона на SIM-карте. Подход, который вы используете, работает только в том случае, если на SIM-карте устройства есть номер мобильного телефона, который он хранит.

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

0

Не существует детерминированного способа найти MSISDN. Вышеупомянутый подход работает только в том случае, если SIM-карта сохранила MSISDN. Другая работа заключается в том, чтобы получить номер из facebook. Он также может работать или не работать. Единственный верный способ - создать учетную запись у какого-либо провайдера шлюза SMS, например http://trumpia.com, а затем отправить SMS на бесплатный номер, а затем вызвать API для извлечения MSISDN.

Смежные вопросы