-1

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

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

String phoneNumber = mTelephonyMgr.getLine1Number(); 

我在android模拟器中尝试了这段代码,它工作正常并给了我一个号码(我猜是模拟器的电话号码),

但是,当我在手机(galaxy s2)上尝试此代码时,它返回了一个空字符串。

谢谢

4

2 回答 2

1

getLine1Number()不保证返回电话号码。仅当您设备中的 SIM 卡上存储了该号码时,它才有效。

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

于 2013-03-18T16:13:49.783 回答
0

来源:读取设备电话号码抛出 NULLPointerException

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

文档说,getLine1Number()如果数字“不可用”,此方法将返回 null,但它没有说明数字何时可能不可用。

于 2013-03-18T16:13:58.397 回答