Android手機中獲取手機號碼和運營商信息
代碼如下:
package com.pei.activity;import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView;
/**
- class name:AndroidUtilActivity<BR>
- class description:show get sim card info activity<BR>
- PS:注意權限 <BR>
- Date:2012-3-12<BR>
- @version 1.00
@author CODYY)peijiangping */ public class AndroidUtilActivity extends Activity { private Button button_getSIMInfo; private TextView number; private TextView privoid;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main); button_getSIMInfo = (Button) this.findViewById(R.id.getSIMInfo); number = (TextView) this.findViewById(R.id.textView1); privoid = (TextView) this.findViewById(R.id.textView2); button_getSIMInfo.setOnClickListener(new ButtonListener());
}
class ButtonListener implements OnClickListener {
@Override public void onClick(View v) { if (v == button_getSIMInfo) { SIMCardInfo siminfo = new SIMCardInfo(AndroidUtilActivity.this); System.out.println(siminfo.getProvidersName()); System.out.println(siminfo.getNativePhoneNumber()); number.setText(siminfo.getNativePhoneNumber()); privoid.setText(siminfo.getProvidersName()); } }
} }</pre>
package com.pei.activity;
import android.content.Context; import android.telephony.TelephonyManager;
/**
- class name:SIMCardInfo<BR>
- class description:讀取Sim卡信息<BR>
- PS: 必須在加入各種權限 <BR>
- Date:2012-3-12<BR>
- @version 1.00
@author CODYY)peijiangping */ public class SIMCardInfo { /**
- TelephonyManager提供設備上獲取通訊服務信息的入口。 應用程序可以使用這個類方法確定的電信服務商和國家 以及某些類型的用戶訪問信息。
- 應用程序也可以注冊一個監聽器到電話收狀態的變化。不需要直接實例化這個類
- 使用Context.getSystemService(Context.TELEPHONY_SERVICE)來獲取這個類的實例。 */ private TelephonyManager telephonyManager; /**
國際移動用戶識別碼 */ private String IMSI;
public SIMCardInfo(Context context) { telephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
}
/**
- Role:獲取當前設置的電話號碼
- <BR>Date:2012-3-12
<BR>@author CODYY)peijiangping */ public String getNativePhoneNumber() { String NativePhoneNumber=null; NativePhoneNumber=telephonyManager.getLine1Number(); return NativePhoneNumber; }
/**
- Role:Telecom service providers獲取手機服務商信息 <BR>
- 需要加入權限<uses-permission
- android:name="android.permission.READ_PHONE_STATE"/> <BR>
- Date:2012-3-12 <BR>
@author CODYY)peijiangping */ public String getProvidersName() { String ProvidersName = null; // 返回唯一的用戶ID;就是這張卡的編號神馬的 IMSI = telephonyManager.getSubscriberId(); // IMSI號前面3位460是國家,緊接著后面2位00 02是中國移動,01是中國聯通,03是中國電信。 System.out.println(IMSI); if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
ProvidersName = "中國移動";
} else if (IMSI.startsWith("46001")) {
ProvidersName = "中國聯通";
} else if (IMSI.startsWith("46003")) {
ProvidersName = "中國電信";
} return ProvidersName; } }</pre>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" />
<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" />
<Button android:id="@+id/getSIMInfo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="獲取手機號碼等信息" />
</LinearLayout></pre>圖片如下:
轉自:http://blog.csdn.net/peijiangping1989/article/details/7344925