android获得不到到手机号码,关于Java:如何在Android 4.1.2上获取手机号码?

本问题已经有最佳答案,请猛点这里访问。

我想获取自己手机的手机号码,以便将此部分添加到我的应用程序中。

我正在搜寻这个问题,

代码在模拟器上是正确的,但在设备中显示为空。

public String getMyPhoneNumber()

{

return ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))

.getLine1Number();

}

和:

但是它返回空值吗? 那么,如何获取电话号码详细信息?

答案来自:以编程方式获取Android手机的电话号码

"无法保证解决此问题,因为电话号码并非物理存储在所有SIM卡上,也不是从网络上广播到电话。在某些需要物理地址验证且仅进行号码分配的国家中尤其如此之后,电话号码分配会在网络上发生-可以更改而无需更改SIM卡或设备(例如,这是支持端口的方式)。

我知道这很痛苦,但是最好的解决方案很可能就是要求用户一次输入他/她的电话号码并存储它。"

您所使用的方法是SDK唯一执行此操作的部分,并且仅在SIM卡上存储了号码的设备上有效,只有某些运营商会这样做。对于所有其他运营商,您将不得不要求用户手动输入电话号码,因为该号码根本没有存储在设备上您可以从中检索到的任何地方。

您的代码应该可以,但是您需要将SIM卡插入手机中。另外,正如autocrat指出的那样,如果数字未存储在SIM卡上,您将得到一个空字符串。

编辑:另外,请检查Pontus Backlund提供的链接,那里有一些很好的信息。

转到设置->关于设备->状态->我的电话号码(如果我的电话号码未知),您将无法获得手机号码..因为某些移动网络不会提供手机号码。

如果我的手机号码有号码,您可以通过以下代码进行移动

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

phoneNumber = tManager.getLine1Number();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值