Java 如何在android 4.1.2上获取手机号码?
我想获得自己手机的手机号码,以便将此部分添加到我的应用程序中 我在寻找这个问题 模拟器上的代码正确,但在设备中显示为空Java 如何在android 4.1.2上获取手机号码?,java,android,Java,Android,我想获得自己手机的手机号码,以便将此部分添加到我的应用程序中 我在寻找这个问题 模拟器上的代码正确,但在设备中显示为空 public String getMyPhoneNumber() { return ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) .getLine1Number(); } 以及: 但它是否返回空值。那么,我如何获取电话号码的详细信息呢?您使用
public String getMyPhoneNumber()
{
return ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
.getLine1Number();
}
以及:
但它是否返回空值。那么,我如何获取电话号码的详细信息呢?您使用的方法是SDK中唯一可以实现这一点的部分,并且仅适用于电话号码存储在SIM卡上的设备,只有一些运营商可以这样做。对于所有其他运营商,您必须要求用户手动输入电话号码,因为该号码根本不存储在设备上您可以检索的任何位置。转到设置->关于设备->状态->我的电话号码如果我的电话号码未知,您将无法获得手机号码。。因为一些移动网络不会提供手机号码 如果我的手机号码有号码,你可以通过以下代码获得手机
TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
phoneNumber = tManager.getLine1Number();
答复来自:
“由于电话号码并非物理存储在所有SIM卡上,也不是从网络广播到手机,因此无法保证解决此问题。这在一些需要物理地址验证的国家尤其如此,数字分配只能在之后进行。电话号码分配在网络上进行,并且可以在不更改SIM卡或设备的情况下进行更改(例如,这就是支持移植的方式)
我知道这很痛苦,但最有可能的解决办法是让用户输入他/她的电话号码一次并存储它。”您的代码应该没问题,但您需要将SIM卡插入手机中。此外,正如autocrat指出的,如果该号码没有存储在SIM卡上,您将得到一个空字符串 编辑:另外,请检查Pontus Backlund提供的链接,那里有一些好信息
TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
phoneNumber = tManager.getLine1Number();