2012-05-16 4 views
4

Я стараюсь, чтобы получить свой собственный номер телефона с этим кодомТочное решение «Получить номер телефона в Android»

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

с

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

Но это не регулярно работать.

Какое точное решение "Получить номер телефона в Android"?

+2

Не все операторы включают номер телефона на SIM-карте – moujib

+1

Я согласен с вышеуказанным комментарием. Не всегда можно получить свой собственный номер телефона. –

+0

, если какие-либо ошибки отображаются в логе cat – Aerrow

ответ

4

Что такое точное решение "Получить номер телефона в Android"?

Попросите пользователя ввести его в EditText, возможно, с android:inputType="phone". В Android SDK нет ничего, что поддерживало бы получение номера телефона устройства, так как устройство может не знать его номер телефона - это требует только оператор. Кроме того, существует несколько сценариев, в которых пользователю необходимо будет указать, какие из возможных телефонных номеров, они хотят использовать:

  • Dual-SIM телефоны
  • людей с другими номерами телефонов, перенесенных на это устройство, или с помощью переадресация вызова для маршрутизации вызовов к этим устройствам
  • людей с номерами SIP или другими VOIP телефонами они предпочитают использовать с устройством
+0

отличный ответ, раз и навсегда. – moujib

+0

прежде всего спасибо вашим ответам. Я хотел отправить sms автоматически, но, по-видимому, это невозможно. – qwerty

0
public String myNO() 
{ 
    return ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getLine1Number(); 
} 

попробовать этот

+3

Это не работает все время. Некоторые операторы не включают номер телефона на SIM-карте, и в этом случае вы не можете получить номер таким образом. –

+0

спасибо за интерес, но верните пустую строку. это изменение совместимости кодов в соответствии с оператором сотовой связи – qwerty

0

Используйте этот код Thank, в

private String getMyPhoneNumber(){ 
    TelephonyManager mTelephonyMgr; 
    mTelephonyMgr = (TelephonyManager) 
     getSystemService(Context.TELEPHONY_SERVICE); 
    return mTelephonyMgr.getLine1Number(); 
} 

private String getMy10DigitPhoneNumber(){ 
    String s = getMyPhoneNumber(); 
    return s.substring(2); 
} 
+0

Этот код не возвращает номер телефона пользователя. –

+0

Какова ваша конкретная потребность, вы используете идентификатор Mobile (Device) или номер мобильного телефона пользователей? – Aerrow

+0

Мне нужен мой номер мобильного телефона – qwerty

1

Послать ммс из телефона программно на адрес электронной почты, на сервере, и читать номер из номера.

+0

Спасибо за мнение – qwerty

+0

Это способ, но этот метод стоит денег конечному пользователю, поэтому я не уверен, что это лучший способ или нет –

1

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

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