Android获取手机号码和运营商信息的方法
本文实例讲述了Android获取手机号码和运营商信息的方法。分享给大家供大家参考。具体实现方法如下:
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="获取手机号"/>
希望本文所述对大家的Android程序设计有所帮助。