1

这是下面的代码来检索电话号码 wwas 能够在三星 4.0.4 上得到它,但是在 htc one v mobile 上得到以下错误..任何线索?

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextView textDeviceID = (TextView)findViewById(R.id.deviceid);


TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

textDeviceID.setText(getMy10DigitPhoneNumber(telephonyManager));


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

 private String getMy10DigitPhoneNumber(TelephonyManager telephonyManager){
 String s = getMyPhoneNumber();
 return s.substring(0);
 }
}
4

2 回答 2

0

根据文档.getLine1Number()返回第 1 行的电话号码字符串,例如,GSM 电话的 MSISDN。如果不可用,则返回 null。

显然.getLine1Number()是从 SIM 卡中读取此信息,因此如果运营商设置了 MSISDN 字段,它将返回其值,如果他们没有设置此字段,则返回 null。

在您的情况下,您的 SIM 卡可能没有由运营商填充此字段。

于 2012-09-05T09:53:49.877 回答
0
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String mblNumber = mTelephonyMgr.getLine1Number();

注意:不要忘记在 AndroidManifest.xml 文件中添加 READ_PHONE_STATE 权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
于 2012-09-07T19:11:53.137 回答