android获取SIM卡信息和手机号码
直接附上代码,具体实现new一个PhoneInfoUtils对象,调用其方法即可。
public class PhoneInfoUtils {private static String TAG = "PhoneInfoUtils";private TelephonyManager telephonyManager;//移动运营商编号private String NetworkOperator;private Context context;public PhoneInfoUtils(Context context) {this.context = context;telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);}//获取sim卡iccidpublic String getIccid() {String iccid = "N/A";iccid = telephonyManager.getSimSerialNumber();return iccid;}//获取电话号码public String getNativePhoneNumber() {String nativePhoneNumber = "N/A";nativePhoneNumber = telephonyManager.getLine1Number();return nativePhoneNumber;}//获取手机服务商信息public String getProvidersName() {String providersName = "N/A";NetworkOperator = telephonyManager.getNetworkOperator();//IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
// Flog.d(TAG,"NetworkOperator=" + NetworkOperator);if (NetworkOperator.equals("46000") || NetworkOperator.equals("46002")) {providersName = "中国移动";//中国移动} else if(NetworkOperator.equals("46001")) {providersName = "中国联通";//中国联通} else if (NetworkOperator.equals("46003")) {providersName = "中国电信";//中国电信}return providersName;}public String getPhoneInfo() {TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);StringBuffer sb = new StringBuffer();sb.append("\nLine1Number = " + tm.getLine1Number());sb.append("\nNetworkOperator = " + tm.getNetworkOperator());//移动运营商编号sb.append("\nNetworkOperatorName = " + tm.getNetworkOperatorName());//移动运营商名称sb.append("\nSimCountryIso = " + tm.getSimCountryIso());sb.append("\nSimOperator = " + tm.getSimOperator());sb.append("\nSimOperatorName = " + tm.getSimOperatorName());sb.append("\nSimSerialNumber = " + tm.getSimSerialNumber());sb.append("\nSubscriberId(IMSI) = " + tm.getSubscriberId());return sb.toString();}}
AndroidManifest.xml清单文件中加入权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
在这里补充下:
手机号码不是所有的SIM卡都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到SIM卡中,能够读取SIM卡号的话应该有前提,那就是SIM卡已经写入了本机号码,不然是无法读取的。具体的什么样的卡能获取到号码,要自己具体测试才可以,就算是同一个运营商同一个套餐的卡也会有差别。
楼主项目用的物联卡就是获取不到号码,然后就用了iccid,下面科普下iccid:
SIM卡正面或者背面总有那么几行数字和字母,20位的,这就是iccid。CCID:Integrate circuit card identity 集成电路卡识别码(固化在手机SIM卡中) ICCID为IC卡的唯一识别号码,共有20位数字组成,其编码格式为:XXXXXX 0MFSS YYGXX XXXXX。
前六位运营商代码:中国移动的为:898600;898602 ,中国联通的为:898601,中国电信898603
如果还想获取到更多的手机卡信息,可查看TelephonyManager的具体方法,这个就不在这里展开了。
参考于:
https://blog.csdn.net/qq_34452829/article/details/54017555
android获取SIM卡信息和手机号码相关推荐
- Android开发之获取SIM卡信息和手机号码
获取SIM卡信息和手机号码的工具类,记录一下方便以后使用 import android.content.Context; import android.telephony.TelephonyManag ...
- ios获取sim卡信息以及手机号码
1.加入一个Framework(CoreTelephony.framework).2.引入头文件#import <CoreTelephony/CTTelephonyNetworkInfo.h&g ...
- Android 获取SIM卡信息
android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHO ...
- android 获取sim卡信息list_提醒:手机要设置SIM卡密码!如何设置?有何用处?攻略来了...
近期,一篇标题为<一部手机失窃而揭露的窃取个人信息实现资金盗取的黑色产业链>的文章引发关注和热议,不法分子偷盗个人手机后,在某政务App窃取用户个人信息,进而申请网贷消费造成用户财产损失的 ...
- Android如何获取SIM卡信息
android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHO ...
- android 双卡开发获取sim卡默认数据卡,获取sim卡信息,sim1卡,sim2卡 2G/3G/4G信号强度
1:默认数据卡 private int getDefalutDataID(){SubscriptionManager subscriptionManager = (SubscriptionManage ...
- 获取SIM卡信息的工具类
本工具类可以获取手机的IMSI.本机的手机号码.SIM卡的服务商. 移动.联通可正常获取到SIM卡的手机卡号,但是电信的获取不到.... 首先,需要在AndroidManifest.xml清单配置文件 ...
- android 获取sim卡operator
android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHO ...
- IPhone之获取Sim卡信息
原文地址:IPhone之获取Sim卡信息 作者:飞舞的鸡毛 首先,加入一个Framework. 引入头文件 #import <UIKit/UIKit.h> #import<CoreT ...
- 双卡android手机SIM卡信息探索 ,获取手机 SIM卡数量和SIM卡id、iccid
废话不多,直接上干货==> 1 以下所有方法都需要在AndroidManifest.xml声明权限 <uses-permission android:name="android. ...
最新文章
- 第一个程序 - Windows程序设计(SDK)001
- redis分布式缓存(二)
- spark shell的运行模式汇总
- 兼容多种模块规范(AMD,CMD,Node)的代码
- Silverlight的发布
- 6. Zend Studio
- pyglet: a cross-platform windowing and multimedia
- matlab中文免费版下载以及安装教程(超详细)
- LoRaWAN协议中文版 第11章 下行ping帧格式(仅Class B)
- 针对五款IPA文件安装工具的深度评测
- 简单实用的电脑桌面待办清单应用
- AR涂涂乐项目之识别图制作制作地球仪剪影一
- 基础算法(三) --- 轮询
- 阿里云AMD服务器ECS实例g6a、c6a和r6a性能参数详解
- DCGAN训练小记(断点继续练习)
- 扩展CKEditor按钮
- 中鑫优配新股开盘破发你怎么看
- 张量中有关矩阵的Kronecker乘积和Khatri-Rao乘积
- 分享我的电子藏书:C系列
- 软件工程毕业设计课题(32)基于JAVA毕业设计JAVA二手交易系统毕设作品项目