1

これは、サムスン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 に答える