代码如下:
- packagecom.pei.activity;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importandroid.widget.TextView;
- /**
- *classname:AndroidUtilActivity<BR>
- *classdescription:showgetsimcardinfoactivity<BR>
- *PS:注意权限<BR>
- *Date:2012-3-12<BR>
- *@version1.00
- *@authorCODYY)peijiangping
- */
- publicclassAndroidUtilActivityextendsActivity{
- privateButtonbutton_getSIMInfo;
- privateTextViewnumber;
- privateTextViewprivoid;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- 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(newButtonListener());
- }
- classButtonListenerimplementsOnClickListener{
- @Override
- publicvoidonClick(Viewv){
- if(v==button_getSIMInfo){
- SIMCardInfosiminfo=newSIMCardInfo(AndroidUtilActivity.this);
- System.out.println(siminfo.getProvidersName());
- System.out.println(siminfo.getNativePhoneNumber());
- number.setText(siminfo.getNativePhoneNumber());
- privoid.setText(siminfo.getProvidersName());
- }
- }
- }
- }
- packagecom.pei.activity;
- importandroid.content.Context;
- importandroid.telephony.TelephonyManager;
- /**
- *classname:SIMCardInfo<BR>
- *classdescription:读取Sim卡信息<BR>
- *PS:必须在加入各种权限<BR>
- *Date:2012-3-12<BR>
- *
- *@version1.00
- *@authorCODYY)peijiangping
- */
- publicclassSIMCardInfo{
- /**
- *TelephonyManager提供设备上获取通讯服务信息的入口。应用程序可以使用这个类方法确定的电信服务商和国家以及某些类型的用户访问信息。
- *应用程序也可以注册一个监听器到电话收状态的变化。不需要直接实例化这个类
- *使用Context.getSystemService(Context.TELEPHONY_SERVICE)来获取这个类的实例。
- */
- privateTelephonyManagertelephonyManager;
- /**
- *国际移动用户识别码
- */
- privateStringIMSI;
- publicSIMCardInfo(Contextcontext){
- telephonyManager=(TelephonyManager)context
- .getSystemService(Context.TELEPHONY_SERVICE);
- }
- /**
- *Role:获取当前设置的电话号码
- *<BR>Date:2012-3-12
- *<BR>@authorCODYY)peijiangping
- */
- publicStringgetNativePhoneNumber(){
- StringNativePhoneNumber=null;
- NativePhoneNumber=telephonyManager.getLine1Number();
- returnNativePhoneNumber;
- }
- /**
- *Role:Telecomserviceproviders获取手机服务商信息<BR>
- *需要加入权限<uses-permission
- *android:name="android.permission.READ_PHONE_STATE"/><BR>
- *Date:2012-3-12<BR>
- *
- *@authorCODYY)peijiangping
- */
- publicStringgetProvidersName(){
- StringProvidersName=null;
- //返回唯一的用户ID;就是这张卡的编号神马的
- IMSI=telephonyManager.getSubscriberId();
- //IMSI号前面3位460是国家,紧接着后面2位0002是中国移动,01是中国联通,03是中国电信。
- System.out.println(IMSI);
- if(IMSI.startsWith("46000")||IMSI.startsWith("46002")){
- ProvidersName="中国移动";
- }elseif(IMSI.startsWith("46001")){
- ProvidersName="中国联通";
- }elseif(IMSI.startsWith("46003")){
- ProvidersName="中国电信";
- }
- returnProvidersName;
- }
- }
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"android:gravity="center">
- <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>
图片如下:
自 http://blog.youkuaiyun.com/peijiangping1989/article/details/7344925
本文介绍了一种在Android应用中读取SIM卡信息的方法,包括手机号码和服务提供商名称。通过使用TelephonyManager类,该方法能够获取SIM卡的详细信息,并在界面上展示出来。

1万+

被折叠的 条评论
为什么被折叠?



