標籤:android style blog http color os
做手機開發,想必都希望擷取手機號碼吧,android中有一個類android.telephony.TelephonyManager提供這個功能。
TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
numberText.setText(tm.getLine1Number());
紅色標記函數能夠擷取本機號碼。
除此之外,TelephonyManager類還提供了多種擷取手機資訊的函數,入imei、imsi等。、
看代碼:
package com.pingan.innovation;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;
public class PhoneInfo extends Activity {
private TextView numberText;
private TextView imeiText;
private TextView onText;
private TextView snText;
private TextView imsiText;
private TextView ssText;
private TextView ntText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
numberText = (TextView) findViewById(R.id.numberText);
imeiText = (TextView) findViewById(R.id.imeiText);
onText = (TextView) findViewById(R.id.onText);
snText = (TextView) findViewById(R.id.snText);
imsiText = (TextView) findViewById(R.id.imsiText);
ssText = (TextView) findViewById(R.id.ssText);
ntText = (TextView) findViewById(R.id.ntText);
TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
numberText.setText(tm.getLine1Number());
imeiText.setText(tm.getDeviceId());
onText.setText(tm.getNetworkOperatorName());
snText.setText(tm.getSimSerialNumber());
imsiText.setText(tm.getSubscriberId());
ssText.setText(tm.getNetworkCountryIso());
ntText.setText(tm.getNetworkOperator());
}
}
以上幾個函數分別擷取的是:
手機號碼、imei、電訊廠商名稱、sim卡序號、IMSI、sim卡所在國家、電訊廠商編號。
對了,AndroidManifest.xml裡面還需加上:<uses-permission android:name="android.permission.READ_PHONE_STATE" />
這樣才能有對手機資訊的存取權限。
不過,經過在HTC Hero真機上的測試,發現擷取不到手機號碼。
在Ophone系統的多普達A6188上測試,同樣也取不到手機號碼。