使用Android代码在GSM Mobile上获取手机号码

时间:2013-05-02 08:47:13

标签: android telephonymanager

我使用以下android代码来获取手机号码,它只在Android模拟器上工作:

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

但是当我在真实设备(Samsung Galaxy Chat B5330)中测试它时,它什么都没有(空字符串)

请帮助解决一些代码段。

3 个答案:

答案 0 :(得分:5)

对于GSM,电话号码在SIM卡上,有些运营商只是不把它放在卡上,然后手机不知道它是什么,但在这种情况下你 应该得到一个empry字符串而不是null

如果运营商将号码存储在您的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(); 

答案 1 :(得分:1)

添加权限

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

请参阅this

答案 2 :(得分:1)

您必须使用Telephony Manager;如果没有找到联系人号码。用户; 您可以使用相同的Telephony Manager Class获取Sim Card的Sim Serial Number和Imei No. Android Device ...

添加权限:

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