我在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()
”始终返回“”值。
如果你知道的话,请帮助我!
答案 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();