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

时间:2012-05-16 13:43:53

标签: android

我尝试使用此代码获取自己的电话号码

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

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

但它不能定期运作。

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

感谢的

5 个答案:

答案 0 :(得分:4)

  

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

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

  • 双卡手机
  • 将其他电话号码移植到此设备或使用呼叫转接将呼叫路由到此设备的人
  • 他们更喜欢使用SIP号码或其他VOIP电话号码的人

答案 1 :(得分:1)

以编程方式将手机中的mms发送到服务器上的电子邮件地址,然后阅读号码。

答案 2 :(得分:1)

  

TelephonyManager    是不是正确的解决方案,因为在某些情况下,号码不会存储在SIM卡中,由于我的建议,您应该在应用程序打开时首次使用共享首选项存储用户的电话号码,之后您将使用该号码需要申请。

答案 3 :(得分:0)

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

试试这个

答案 4 :(得分:0)

使用此代码,

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

private String getMy10DigitPhoneNumber(){
    String s = getMyPhoneNumber();
    return s.substring(2);
}
相关问题