Android(安卓)读取SIM卡参数
16lz
2022-04-02
- packagecom.water.activity;
- importjava.util.List;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.telephony.CellLocation;
- importandroid.telephony.NeighboringCellInfo;
- importandroid.telephony.TelephonyManager;
- importandroid.util.Log;
- publicclassMyListextendsActivity{
- /**
- *androidAPI中的TelephonyManager对象,可以取得SIM卡中的信息
- */
- privateTelephonyManagertelMgr;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- telMgr=(TelephonyManager)getSystemService(TELEPHONY_SERVICE);
- if(telMgr.getSimState()==telMgr.SIM_STATE_READY){
- Log.i("MyList","良好");
- }elseif(telMgr.getSimState()==telMgr.SIM_STATE_ABSENT){
- Log.i("MyList","无SIM卡");
- }else{
- Log.i("MyList","SIM卡被锁定或未知的状态");
- }
- Log.i("MyList","电话状态[0无活动/1响铃/2摘机]:"+getCallState());
- Log.i("MyList","电话方位:"+getCellLocation());
- Log.i("MyList","唯一的设备ID:"+getDeviceId());
- Log.i("MyList","设备的软件版本号:"+getDeviceSoftwareVersion());
- Log.i("MyList","手机号:"+getLine1Number());
- Log.i("MyList","附近的电话的信息:"+getNeighboringCellInfo());
- Log.i("MyList","获取ISO标准的国家码,即国际长途区号:"+getNetworkCountryIso());
- Log.i("MyList","MCC+MNC:"+getNetworkOperator());
- Log.i("MyList","(当前已注册的用户)的名字:"+getNetworkOperatorName());
- Log.i("MyList","当前使用的网络类型:"+getNetworkType());
- Log.i("MyList","手机类型:"+getPhoneType());
- Log.i("MyList","SIM卡的国家码:"+getSimCountryIso());
- Log.i("MyList","获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字:"+getSimOperator());
- Log.i("MyList","服务商名称:"+getSimOperatorName());
- Log.i("MyList","SIM卡的序列号:"+getSimSerialNumber());
- Log.i("MyList","SIM的状态信息:"+getSimState());
- Log.i("MyList","唯一的用户ID:"+getSubscriberId());
- Log.i("MyList","取得和语音邮件相关的标签,即为识别符:"+getVoiceMailAlphaTag());
- Log.i("MyList","获取语音邮件号码:"+getVoiceMailNumber());
- Log.i("MyList","ICC卡是否存在:"+hasIccCard());
- Log.i("MyList","是否漫游:"+isNetworkRoaming());
- Log.i("MyList","获取数据活动状态:"+getDataActivity());
- Log.i("MyList","获取数据连接状态:"+getDataState());
- //telMgr.listen(PhoneStateListenerlistener,intevents);
- //解释:
- //IMSI是国际移动用户识别码的简称(InternationalMobileSubscriberIdentity)
- //IMSI共有15位,其结构如下:
- //MCC+MNC+MIN
- //MCC:MobileCountryCode,移动国家码,共3位,中国为460;
- //MNC:MobileNetworkCode,移动网络码,共2位
- //在中国,移动的代码为电00和02,联通的代码为01,电信的代码为03
- //合起来就是(也是Android手机中APN配置文件中的代码):
- //中国移动:4600046002
- //中国联通:46001
- //中国电信:46003
- //举例,一个典型的IMSI号码为460030912121001
- //IMEI是InternationalMobileEquipmentIdentity(国际移动设备标识)的简称
- //IMEI由15位数字组成的”电子串号”,它与每台手机一一对应,而且该码是全世界唯一的
- //其组成为:
- //1.前6位数(TAC)是”型号核准号码”,一般代表机型
- //2.接着的2位数(FAC)是”最后装配号”,一般代表产地
- //3.之后的6位数(SNR)是”串号”,一般代表生产顺序号
- //4.最后1位数(SP)通常是”0″,为检验码,目前暂备用
- }
- /**
- *电话状态:<br/>
- *CALL_STATE_IDLE无任何状态时<br/>
- *CALL_STATE_OFFHOOK接起电话时<br/>
- *CALL_STATE_RINGING电话进来时
- *
- *@return
- */
- privateintgetCallState(){
- returntelMgr.getCallState();
- }
- /**
- *返回当前移动终端的位置<br/>
- *
- *@return
- */
- privateCellLocationgetCellLocation(){
- CellLocationlocation=telMgr.getCellLocation();
- //请求位置更新,如果更新将产生广播,接收对象为注册LISTEN_CELL_LOCATION的对象,需要的permission名称为ACCESS_COARSE_LOCATION。
- //location.requestLocationUpdate();
- returnlocation;
- }
- /**
- *唯一的设备ID:<br/>
- *如果是GSM网络,返回IMEI;如果是CDMA网络,返回MEID<br/>
- *需要权限:android.permission.READ_PHONE_STATE
- *
- *@returnnullifdeviceIDisnotavailable.
- */
- privateStringgetDeviceId(){
- returntelMgr.getDeviceId();
- }
- /**
- *返回移动终端的软件版本:<br/>
- *例如:GSM手机的IMEI/SV码。<br/>
- *
- *@returnnullifthesoftwareversionisnotavailable.
- */
- privateStringgetDeviceSoftwareVersion(){
- returntelMgr.getDeviceSoftwareVersion();
- }
- /**
- *手机号:<br/>
- *对于GSM网络来说即MSISDN
- *
- *@returnnullifitisunavailable.
- */
- privateStringgetLine1Number(){
- returntelMgr.getLine1Number();
- }
- /**
- *返回当前移动终端附近移动终端的信息:<br/>
- *类型:List<NeighboringCellInfo><br/>
- *需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES
- *
- *@return
- */
- privateList<NeighboringCellInfo>getNeighboringCellInfo(){
- //List<NeighboringCellInfo>infos=telMgr.getNeighboringCellInfo();
- //for(NeighboringCellInfoinfo:infos){
- ////获取邻居小区号
- //intcid=info.getCid();
- //
- ////获取邻居小区LAC,LAC:
- ////位置区域码。为了确定移动台的位置,每个GSM/PLMN的覆盖区都被划分成许多位置区,LAC则用于标识不同的位置区。
- //info.getLac();
- //info.getNetworkType();
- //info.getPsc();
- //
- ////获取邻居小区信号强度
- //info.getRssi();
- //}
- returntelMgr.getNeighboringCellInfo();
- }
- /**
- *获取ISO标准的国家码,即国际长途区号。<br/>
- *注意:仅当用户已在网络注册后有效。<br/>
- *在CDMA网络中结果也许不可靠。<br/>
- *
- *@return
- */
- privateStringgetNetworkCountryIso(){
- returntelMgr.getNetworkCountryIso();
- }
- /**
- *MCC+MNC(mobilecountrycode+mobilenetworkcode)<br/>
- *注意:仅当用户已在网络注册时有效。<br/>
- *在CDMA网络中结果也许不可靠。<br/>
- *
- *@return
- */
- privateStringgetNetworkOperator(){
- returntelMgr.getNetworkOperator();
- }
- /**
- *按照字母次序的currentregisteredoperator(当前已注册的用户)的名字<br/>
- *注意:仅当用户已在网络注册时有效。<br/>
- *在CDMA网络中结果也许不可靠。
- *
- *@return
- */
- privateStringgetNetworkOperatorName(){
- returntelMgr.getNetworkOperatorName();
- }
- /**
- *当前使用的网络类型:<br/>
- *NETWORK_TYPE_UNKNOWN网络类型未知0<br/>
- *NETWORK_TYPE_GPRSGPRS网络1<br/>
- *NETWORK_TYPE_EDGEEDGE网络2<br/>
- *NETWORK_TYPE_UMTSUMTS网络3<br/>
- *NETWORK_TYPE_HSDPAHSDPA网络8<br/>
- *NETWORK_TYPE_HSUPAHSUPA网络9<br/>
- *NETWORK_TYPE_HSPAHSPA网络10<br/>
- *NETWORK_TYPE_CDMACDMA网络,IS95A或IS95B.4<br/>
- *NETWORK_TYPE_EVDO_0EVDO网络,revision0.5<br/>
- *NETWORK_TYPE_EVDO_AEVDO网络,revisionA.6<br/>
- *NETWORK_TYPE_1xRTT1xRTT网络7<br/>
- *在中国,联通的3G为UMTS或HSDPA,移动和联通的2G为GPRS或EGDE,电信的2G为CDMA,电信的3G为EVDO<br/>
- *
- *@return
- */
- privateintgetNetworkType(){
- returntelMgr.getNetworkType();
- }
- /**
- *返回移动终端的类型:<br/>
- *PHONE_TYPE_CDMA手机制式为CDMA,电信<br/>
- *PHONE_TYPE_GSM手机制式为GSM,移动和联通<br/>
- *PHONE_TYPE_NONE手机制式未知<br/>
- *
- *@return
- */
- privateintgetPhoneType(){
- returntelMgr.getPhoneType();
- }
- /**
- *获取ISO国家码,相当于提供SIM卡的国家码。
- *
- *@returnReturnstheISOcountrycodeequivalentfortheSIMprovider's
- *countrycode.
- */
- privateStringgetSimCountryIso(){
- returntelMgr.getSimCountryIso();
- }
- /**
- *获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.<br/>
- *SIM卡的状态必须是SIM_STATE_READY(使用getSimState()判断).
- *
- *@returnReturnstheMCC+MNC(mobilecountrycode+mobilenetworkcode)
- *oftheprovideroftheSIM.5or6decimaldigits.
- */
- privateStringgetSimOperator(){
- returntelMgr.getSimOperator();
- }
- /**
- *服务商名称:<br/>
- *例如:中国移动、联通<br/>
- *SIM卡的状态必须是SIM_STATE_READY(使用getSimState()判断).
- *
- *@return
- */
- privateStringgetSimOperatorName(){
- returntelMgr.getSimOperatorName();
- }
- /**
- *SIM卡的序列号:<br/>
- *需要权限:READ_PHONE_STATE
- *
- *@return
- */
- privateStringgetSimSerialNumber(){
- returntelMgr.getSimSerialNumber();
- }
- /**
- *SIM的状态信息:<br/>
- *SIM_STATE_UNKNOWN未知状态0<br/>
- *SIM_STATE_ABSENT没插卡1<br/>
- *SIM_STATE_PIN_REQUIRED锁定状态,需要用户的PIN码解锁2<br/>
- *SIM_STATE_PUK_REQUIRED锁定状态,需要用户的PUK码解锁3<br/>
- *SIM_STATE_NETWORK_LOCKED锁定状态,需要网络的PIN码解锁4<br/>
- *SIM_STATE_READY就绪状态5
- *
- *@return
- */
- privateintgetSimState(){
- returntelMgr.getSimState();
- }
- /**
- *唯一的用户ID:<br/>
- *例如:IMSI(国际移动用户识别码)foraGSMphone.<br/>
- *需要权限:READ_PHONE_STATE
- *
- *@return
- */
- privateStringgetSubscriberId(){
- returntelMgr.getSubscriberId();
- }
- /**
- *取得和语音邮件相关的标签,即为识别符<br/>
- *需要权限:READ_PHONE_STATE
- *
- *@return
- */
- privateStringgetVoiceMailAlphaTag(){
- returntelMgr.getVoiceMailAlphaTag();
- }
- /**
- *获取语音邮件号码:<br/>
- *需要权限:READ_PHONE_STATE
- *
- *@return
- */
- privateStringgetVoiceMailNumber(){
- returntelMgr.getVoiceMailNumber();
- }
- /**
- *ICC卡是否存在
- *
- *@return
- */
- privatebooleanhasIccCard(){
- returntelMgr.hasIccCard();
- }
- /**
- *是否漫游:(在GSM用途下)
- *
- *@return
- */
- privatebooleanisNetworkRoaming(){
- returntelMgr.isNetworkRoaming();
- }
- /**
- *获取数据活动状态<br/>
- *DATA_ACTIVITY_IN数据连接状态:活动,正在接受数据<br/>
- *DATA_ACTIVITY_OUT数据连接状态:活动,正在发送数据<br/>
- *DATA_ACTIVITY_INOUT数据连接状态:活动,正在接受和发送数据<br/>
- *DATA_ACTIVITY_NONE数据连接状态:活动,但无数据发送和接受<br/>
- *
- *@return
- */
- privateintgetDataActivity(){
- returntelMgr.getDataActivity();
- }
- /**
- *获取数据连接状态<br/>
- *DATA_CONNECTED数据连接状态:已连接<br/>
- *DATA_CONNECTING数据连接状态:正在连接<br/>
- *DATA_DISCONNECTED数据连接状态:断开<br/>
- *DATA_SUSPENDED数据连接状态:暂停<br/>
- *
- *@return
- */
- privateintgetDataState(){
- returntelMgr.getDataState();
- }
- }
更多相关文章
- android中gridView中点击 item为选中状态
- Android(安卓)ImageView显示网络图片
- android 获取手机设备信息
- Android(安卓)SDK自带教程之BluetoothChat
- android 实时检测网络状态
- android gps开发必备资料(含测试demo下载)
- android:configChanges
- android 把图片状态由彩色变成灰色
- android监听手机网络连接状态改变的后台服务