2013-05-02 4 views
2

Я использую следующий андроид код, чтобы получить номер мобильного телефона, и это работает на андроид эмуляторы только:Получить номер мобильного телефона GSM Mobile с помощью андроида код

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

Но когда я тестировал в реальном устройстве (Samsung Galaxy Chat B5330) дает ничего (пустая строка)

Пожалуйста, помогите с некоторым фрагментом кода.

+0

Возможно, вам придется использовать код USSD у местного перевозчика, а не конечно, но мне также интересно узнать! – 2013-05-02 08:51:26

+1

Это зависит от SIM-карты. Вы можете найти полезный ответ здесь: http://stackoverflow.com/a/5134725/2198638. – Brtle

ответ

5

Для GSM, номер телефона на SIM-карте, и некоторые операторы просто не поставить его на карту, а затем телефон не знать, что это такое, но в этом случае вы должны получить строку empry, а не нуль

Если перевозчик сохраняет номер на вашей SIM-карте, перейдите к Settings -> About Phone -> Status -> My phone Number. Если он отображает unknown, то ваш номер не сохраняется на SIM-карте.

enter image description here

прибудет использование IMEI:

TelephonyManager tm =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
imei_no = tm.getDeviceId(); 
+0

Ya его показ неизвестен .... есть ли другой способ получить номер мобильного телефона (с использованием номера SIM-карты или IMEI)? – Parmanand

+3

Я не думаю, что есть другой способ ... потому что все это зависит от компании мобильных операторов (например, vodaphone ... и т. Д.) Означает, что они не дают нам номер мобильного телефона, как мы его получаем. –

1

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

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

См this

+0

Я добавил его уже ... все еще не работает – Parmanand

+1

Несколько раз это не работает см. Http://stackoverflow.com/a/6797278/1051147 –

1

Вы должны использовать Telephony Manager, если вообще вы не нашли контакт нет. пользователя; Вы можете получить Sim серийный номер сим-карты и IMEI Количество устройств Android с помощью того же Telephony Manager Class ...

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

<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(); 
Смежные вопросы