3

我在 Android 2.2 中编写应用程序。我试图在 Android 中获取我的电话号码,但无法...如下所示,这是我获取电话号码的代码:(应用程序设备 - 三星 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()”总是返回“”值。如果你知道,请帮助我!

4

3 回答 3

1

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

它不会显示您的电话号码,直到它写在您的移动 SIM 卡上,因此请尝试更换 SIM 卡,这样当您更换 SIM 卡时,如果电话号码写在那里,它将显示电话号码。

于 2011-11-23T10:28:42.003 回答
0

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

于 2011-11-23T10:30:00.770 回答
0

如果您想获取插入 sim 卡的手机的电话号码,例如 +92xxxxxx,+42xxxxxxx,+1xxxxxx 这种类型,则只需将此代码复制到您的应用程序中即可。

TelephonyManager phn_mngr = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String PhnNo= phn_mngr.getLine1Number();
于 2012-12-19T10:51:42.907 回答