“在Android中获取电话号码”的精确解决方案

“在Android中获取电话号码”的精确解决方案,android,Android,我试着用这个代码获取我自己的电话号码 TelephonyManager Mgr=(TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE); mPhoneNumber = tMgr.getLine1Number(); 与 但它不经常工作 Android中获取电话号码的确切解决方案是什么 谢谢 public String myNO() { return ((TelephonyManager) getSys

我试着用这个代码获取我自己的电话号码

TelephonyManager Mgr=(TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE);  
mPhoneNumber = tMgr.getLine1Number();

但它不经常工作

Android中获取电话号码的确切解决方案是什么

谢谢

public String myNO()
{
    return ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getLine1Number();
}
试试这个

使用这个代码

   private String getMyPhoneNumber(){
    TelephonyManager mTelephonyMgr;
    mTelephonyMgr = (TelephonyManager)
        getSystemService(Context.TELEPHONY_SERVICE); 
    return mTelephonyMgr.getLine1Number();
}

private String getMy10DigitPhoneNumber(){
    String s = getMyPhoneNumber();
    return s.substring(2);
}
Android中获取电话号码的确切解决方案是什么

让用户在EditText中输入一个,可能配置为android:inputType=phone。Android SDK中不支持检索设备的电话号码,因为设备可能不知道其电话号码——只有运营商需要。此外,在几种情况下,用户需要指出他们希望使用的可能电话号码:

双卡手机 将其他电话号码移植到此设备的用户,或使用呼叫转接将呼叫路由到此设备的用户 具有SIP号码或其他VOIP电话号码的用户,他们更愿意与设备一起使用
以编程方式将彩信从手机发送至服务器上的电子邮件地址,然后读取发件人号码

电话管理员 这不是正确的解决方案,因为在某些情况下,SIM卡中没有存储该号码。根据我的建议,您应该在应用程序首次打开时使用共享首选项存储用户的电话号码,然后在应用程序中需要时随时使用该号码


并非所有运营商都在sim卡上注明电话号码。我同意上述评论。并非总是可以获取您自己的电话号码。如果日志中显示的任何错误,则返回空字符串。这种方式对moujib和David这样的运营商来说并不有用。在使用任何代码之前,请尝试检查您的sim卡上是否有任何电话号码,在droid手机上转到“设置”,然后转到“电话状态”,然后滚动至“电话号码”。如果它是空的,不要费心编码。这不是一直都能用的。有些运营商在SIM卡上不包含电话号码,因此您无法通过这种方式获取电话号码。感谢您的关注,但请返回空白字符串。此代码互操作性根据移动运营商的不同而变化。您的确切需求是什么,您需要移动设备id或用户的手机号码?正如我在其他地方所评论的,这是不可靠的。仅当SIM卡包含电话号码时,此功能才起作用。在很多情况下,情况并非如此。谢谢你的帮助。你的代码是正确的,但不要像我一样与每个操作员一起工作伟大的答案,一劳永逸。首先,谢谢你的答案。我想自动发送短信,但显然这是不可能的。这是一种方式,但这种方式对最终用户来说是要花钱的,所以我不确定这是否是最好的方式
   private String getMyPhoneNumber(){
    TelephonyManager mTelephonyMgr;
    mTelephonyMgr = (TelephonyManager)
        getSystemService(Context.TELEPHONY_SERVICE); 
    return mTelephonyMgr.getLine1Number();
}

private String getMy10DigitPhoneNumber(){
    String s = getMyPhoneNumber();
    return s.substring(2);
}