2013-03-18 122 views
-1

我试图获得当前手机号码的电话号码,我用这个代码(我已经在清单权限):获得当前手机

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

String phoneNumber = mTelephonyMgr.getLine1Number(); 

我想这代码在Android模拟器,它工作正常,并给我一个数字(我想这是模拟器的电话号码),

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

感谢

+1

试试这个答案:http://stackoverflow.com/a/6420783/794088 – petey 2013-03-18 16:11:36

+0

-1这个问题已被问了大约一百万次在这里。 – 2013-03-18 16:16:53

回答

1

getLine1Number()不保证返回的电话号码。它只适用于设备中的SIM卡上存储有号码。

您可以通过转到Settings -> About -> Status并查看电话号码是否可用,检查它是否成功。如果不是,那么您的运营商不守号的SIM卡上

+0

当号码不存储在SIM卡中时,还有另一种获取电话号码的方法吗? – 2013-03-18 16:28:12

+0

@AdirRahamim不要求用户输入它,不。 – 2013-03-18 16:28:39

+0

嗨,那么whatsapp android如何获取我的电话号码? – 2013-03-19 15:14:27

0

来源:Reading device phone number throws NULLPointerException

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

documentation对于getLine1Number()表示如果数字“不可用”,但此方法将不返回数字可能不可用时返回null。

+0

有没有另一种方式来获得电话号码时,号码不存储在SIM卡? – 2013-03-18 16:28:32

+0

@AdirRahamim你可以得到仅存储的数字。您可以要求用户输入号码 – 2013-03-18 16:29:53

相关问题