TelephonyManager.getLine1Number()失败?
收藏

我想获取android设备的电话号码。我使用以下代码:

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

在我的手机(HTC Wildfire)上,我无法获取电话号码-我得到的只是空字符串。如果我在emulatur上运行代码,通常会显示电话号码。

如果我转到设置=>关于电话=>电话身份->电话号码,则电话号码为“未知”。

问题出在哪里? SIM卡出问题了吗?

最佳答案

我们的项目中有同样的问题。结论是它取决于SIM卡。

我们发生了什么事:

  • 带有AT&T SIM卡的Galaxy S:可以读取电话号码,“设置”显示号码
  • 具有欧洲SIM卡的同一Galaxy:无法读取该号码,并且在“设置”中为“未知”(手机功能完善,只是无法读取该号码)

其他论坛也有报道。

In the end we decided to ask the user for the phone number. A bit more involved, actually: if( "SIM card present" && "cannot read the cell number") "ask user"; . Otherwise we will keep bugging the user that doesn't a SIM card in the first place.

    公众号
    关注公众号订阅更多技术干货!