判断SIM卡状态,获取SIM卡信息

本文介绍了一个用于获取Android设备SIM卡状态及详细信息的方法。包括SIM卡的状态(如是否需要解锁)、SIM卡序列号、运营商代码及名称、国家代码等。此功能需要READ_PHONE_STATE权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public String resdSIM(){
     //取得相关服务
     TelephonyManager tm = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE);
     
     StringBuffer sb = new StringBuffer();
     switch(tm.getSimState()){
     case TelephonyManager.SIM_STATE_ABSENT: //无卡
           sb.append("无卡");
      break;
     case TelephonyManager.SIM_STATE_UNKNOWN: //未知状态
           sb.append("未知状态");
      break;
     case TelephonyManager.SIM_STATE_NETWORK_LOCKED: //需要networkpin解锁
           sb.append("需要networkpin解锁");
      break;
     case TelephonyManager.SIM_STATE_PIN_REQUIRED: // 需要pin解锁
           sb.append("需要pin解锁");
      break;
     case TelephonyManager.SIM_STATE_PUK_REQUIRED: //需要puk解锁
           sb.append("需要puk解锁");
      break;
     case TelephonyManager.SIM_STATE_READY: //良好
           sb.append("良好");
      break;
     }
     

     以下代码需要 READ_PHONE_STATE 权限

     <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

 

     if(tm.getSimSerialNumber() != null){
           sb.append("@" + tm.getSimSerialNumber().toString());
     }else{
           sb.append("@无法取得sim卡号");
     }
     
     if(tm.getSimOperator().equals("")){
           sb.append("@无法取得供货商代码");
     }else{
           sb.append("@" + tm.getSimOperator().toString());
     }
     
     if(tm.getSimOperatorName().equals("")){
           sb.append("@无法取得供货商");
     }else{
           sb.append("@" + tm.getSimOperator().toString());
     }
     
     if(tm.getSimCountryIso().equals("")){
           sb.append("@无法取得国籍");
     }else{
           sb.append("@" + tm.getSimCountryIso());
     }
     
     if(tm.getNetworkOperator().equals("")){
           sb.append("@无法取得网络运营商");
     }else{
           sb.append("@" + tm.getNetworkOperator().toString());
     }
     
     if(tm.getNetworkOperatorName().equals("")){
           sb.append("@无法取得网络运营商名称");
     }else{
           sb.append("@" + tm.getNetworkOperatorName().toString());
     }
     
     if(tm.getNetworkType() == 0){
           sb.append("@无法取得网络类型");
     }else{
           sb.append("@" + tm.getNetworkType());
     }
     
     return sb.toString();
    }

转载于:https://www.cnblogs.com/earl-yongchang/p/4940381.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值