如何在Android 2.2中获取我的电话号码

时间:2011-11-23 10:13:27

标签: android phone-number sim-card

我在Android 2.2中编写应用程序。 我试图在Android中获取我的电话号码,但不能...... 如下所示,这是我获取电话号码的代码:(适用于Apps的设备 - 三星Galaxy Plus)

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

String phone = getMyPhoneNumber(getApplicationContext());// return "" in here

我在Androidmanifest.xml中添加了“android.permission.READ_PHONE_STATE” 但是当我运行应用程序时,电话是空的......

我不知道为什么,虽然我得到了“g etSimSerialNumber(), getSimOperatorName(),getSimOperator(),......”没关系!

方法“getLine1Number()”始终返回“”值。 如果你知道的话,请帮助我!

3 个答案:

答案 0 :(得分:1)

检查您的号码是否在Settings->About phone->State->Phone number中可见,否则您将无法获得该号码。

在您的移动SIM卡上写入电话号码之前,它不会显示您的电话号码,因此请尝试更改SIM卡,以便在更改SIM卡时,如果电话号码写在那里,则会显示电话号码。

答案 1 :(得分:0)

尝试使用getSubscriberId(),这是手机的IMSI。

答案 2 :(得分:0)

如果您想要插入SIM卡的手机号码,例如+ 92xxxxxx,+ 42xxxxxxx,+ 1xxxxxx此类型,请在您的应用中复制此代码。

TelephonyManager phn_mngr = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String PhnNo= phn_mngr.getLine1Number();