如何在Android中以编程方式获取自己的电话号码?

时间:2014-02-12 21:08:58

标签: java android telephonymanager

我尝试了以下代码来获取自己的数字并获得一个NULL字符串。有什么问题?

TelephonyManager mTelephonyMgr;     
 mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);     
 String phoneNumber = mTelephonyMgr.getLine1Number();

许可

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

2 个答案:

答案 0 :(得分:3)

使用TelephonyManager.getLine1Number()

但您需要将电话号码存储在SIM卡上,而且无法通过其他方式获取“自己的号码”。

示例:

TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); 
String myPhoneNumber =  tm.getLine1Number();

并且您需要此权限到您的Manifest.xml

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

看到这个问题: TelephonyManager.getLine1Number() failing? 如描述,你需要评估:

if("SIM card present" && "phone number is stored") {
  "get the phone number with TelephonyManager.getLine1Number"
}

答案 1 :(得分:0)

将此添加到您的清单

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

您需要用户的权限才能检索此数据

如果它仍然返回null,则表示数据不可用,并且您无法使用它。

请参阅Get my phone number in android