获取当前手机的电话号码

时间:2013-03-18 16:10:02

标签: java android

我正在尝试获取当前手机的电话号码,并且我已经使用了此代码(我已经在清单中拥有权限):

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

String phoneNumber = mTelephonyMgr.getLine1Number(); 

我在Android模拟器中尝试了这个代码,它运行正常并给了我一个数字(我猜这是模拟器的电话号码),

然而,当我在手机(galaxy s2)上尝试使用此代码时,它返回一个空字符串。

由于

2 个答案:

答案 0 :(得分:1)

getLine1Number()无法保证返回电话号码。它仅在设备中的SIM卡上存有号码时才有效。

您可以转到Settings -> About -> Status并查看电话号码是否可用来检查是否有。如果不是,那么您的运营商不会将号码保留在SIM卡上

答案 1 :(得分:0)

来源:Reading device phone number throws NULLPointerException

在印度的一些运营商,这个返回的电话号码存储在SIM卡的MSISDN上,而某些运营商没有填写。所以它返回空,尝试使用其他SIM卡。

getLine1Number()的{​​{3}}表示如果数字“不可用”,此方法将返回null,但没有说明该数字何时可用。