SIM卡的锁定
Android 萌新的探索之路,大神可以直接跳过。
原创作品,转载请注明出处!!!!
(内容比较低级,我自己都不相信有人会转载,哈哈哈…,手动滑稽!)
将需要的SIM卡的IMSI值按如下写出来,可以有别的卡,自己查询IMSI值
public final static String IMSI = "46000";//移动卡public final static String IMSI1 = "46002";//移动卡public final static String IMSI2 = "46001";//联通卡public final static String IMSI3 = "46003";//电信卡
将下面一段代码放在onclick里,通过点击就可以实现满足这几种卡可以实现点击效果
TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);/** 获取SIM卡的IMSI码* SIM卡唯一标识:IMSI 国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,* 储存在SIM卡中,可用于区别移动用户的有效信息。IMSI由MCC、MNC、MSIN组成,其中MCC为移动国家号码,由3位数字组成,* 唯一地识别移动客户所属的国家,我国为460;MNC为网络id,由2位数字组成,* 用于识别移动客户所归属的移动网络,中国移动为00,中国联通为01,中国电信为03;MSIN为移动客户识别码,采用等长11位数字构成。* 唯一地识别国内GSM移动通信网中移动客户。所以要区分是移动还是联通,只需取得SIM卡中的MNC字段即可*/if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {//用户可能关闭需要的权限return;}else{String imsi = telManager.getSubscriberId();boolean phoneCard = (imsi!=null&&(imsi.substring(0,5).equals(this.IMSI)|| imsi.substring(0,5).equals(this.IMSI1)|| imsi.substring(0,5).equals(this.IMSI2)|| imsi.substring(0,6).equals(this.IMSI3)|| imsi.substring(0,6).equals(this.IMSI4)|| imsi.substring(0,6).equals(this.IMSI5) ));//substring(0,5) 从第一个开始,取五位,(0,6)取6位if( ! phoneCard ){AppCommonUtil.showToast(this, R.string.isim_card_error);Log.w("a","++++++++++++++++"+imsi);//检测当前卡的imsi值return;}