2013-03-18 4 views
-1

Я пытаюсь получить телефонный номер текущего телефона, и я использовал этот код (у меня уже есть разрешения в манифесте):Получить телефонный номер текущего телефона

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

String phoneNumber = mTelephonyMgr.getLine1Number(); 

Я попытался это код в эмуляторе Android, и он отлично работает и дает мне номер (я думаю, это номер телефона эмулятора),

Однако, когда я пробовал этот код на своем телефоне (galaxy s2), он возвращал пустую строку.

Благодаря

+1

попробуйте этот ответ: http://stackoverflow.com/a/6420783/794088 – petey

+0

-1 Этот вопрос задан здесь примерно миллион раз. –

ответ

1

getLine1Number() не гарантированно возвращает номер телефона. Он работает только в том случае, если на SIM-карте вашего устройства есть номер, хранящийся на нем.

Вы можете проверить, подходит ли он, отправив Settings -> About -> Status и посмотреть, доступен ли там номер телефона. Если это не так, то ваш оператор не хранит номер на SIM-карте

+0

есть ли другой способ получить номер телефона, когда номер не хранится на сим-карте? –

+0

@AdirRahamim. Не просите пользователя ввести его, нет. –

+0

привет, так как whatsapp android получить мой номер телефона? –

0

Источник: Reading device phone number throws NULLPointerException

В Индии некоторый оператор, этот номер телефона Возвращается, который хранится на MSISDN SIM-карты, которая не заполняется некоторыми операторами. Таким образом, он возвращает пустой, попробуйте его с другой SIM-картой.

documentation для getLine1Number() говорит, что этот метод возвращает null, если номер «недоступен», но он не говорит, когда число может быть недоступно.

+0

есть ли другой способ получить номер телефона, когда число не хранится на сим-карте? –

+0

@AdirRahamim Вы можете получить номер, который хранится только. Вы можете попросить пользователя ввести номер –

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