本文参考自:http://blog.csdn.net/homebei2/article/details/6338213

TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE); TelephonyManager 的使用 TelephonyManager 提供设备上获取通讯服务信息的入口,应用程序使用这个类的方法来获取电话的服务商或者状态。程序也可以注册一个监听器来监听电话状态的改变。 不需要直接实例化这个类,使用Context.getSystemService(Context.TELEPHONY_SERVICE)来获取这个类的实例。

getSimOperatorName() Returns the Service Provider Name (SPN). // 获取服务提供商名字,比如电信,联通,移动 ,注意:一些电话信息需要相应的权限。,所以此方法可能无效。

用下面的方法 第一种方法: 获取手机的IMSI码,并判断是中国移动/中国联通/中国电信

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字段即可

TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String imsi = telManager.getSubscriberId();if(imsi!=null){ if(imsi.startsWith(“46000″) || imsi.startsWith(“46002″)){//因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号段使用了此编号 //中国移动}else if(imsi.startsWith(“46001″)){//中国联通}else if(imsi.startsWith(“46003″)){//中国电信} }

第二种方法

TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String operator = telManager.getSimOperator();
if(operator!=null){ if(operator.equals(“46000″) || operator.equals(“46002″)|| operator.equals(“46007″)){
//中国移动
}else if(operator.equals(“46001″)){
//中国联通
}else if(operator.equals(“46003″)){
//中国电信
} }

读取相关信息,需要在AndroidManifest.xml 文件中添加权限 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>


IMSI共有15位,其结构如下: MCC+MNC+MIN MCC:Mobile Country Code,移动国家码,共3位,中国为460; MNC:Mobile Network Code,移动网络码,共2位,电信03,移动02,联通GSM 01,一个典型的IMSI号码为460030912121001; MIN共有10位,其结构如下: 09+M0M1M2M3+ABCD 其中的M0M1M2M3和MDN号码中的H0H1H2H3可存在对应关系,ABCD四位为自由分配。 可以看出IMSI在MIN号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个CDMA运营商,可以通过MNC来进行区别.

功能说明:

getCellLocation() 返回的单元格位置的装置 ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION

getDeviceId() 返回的IMEI / MEID的设备。 如果该设备是GSM设备 然后IMEI号将被退回,如果该设备是一个CDMA设备然后MEID 将被退回 READ_PHONE_STATE

getLine1Number() 返回设备的电话号码(MSISDN号码) READ_PHONE_STATE

getNetworkOperatorName() 返回注册的网络运营商的名字

getNetworkOperator() 返回的MCC +跨国公司的注册网络运营商

getNetworkCountryIso() 返回注册的网络运营商的国家代码

getSimCountryIso() 返回SIM卡运营商的国家代码 READ_PHONE_STATE

getSimOperator() 返回SIM卡运营商的单个核细胞数+冶 READ_PHONE_STATE

getSimOperatorName() 返回SIM卡运营商的名字 READ_PHONE_STATE

getSimSerialNumber() 返回SIM卡的序列号 READ_PHONE_STATE

getNetworkType() 返回网络设备可用的类型。 这将是 下列其中一个值:

TelephonyManager.NETWORK_TYPE_UNKNOWN TelephonyManager.NETWORK_TYPE_GPRS TelephonyManager.NETWORK_TYPE_EDGE TelephonyManager.NETWORK_TYPE_UMTS READ_PHONE_STATE getPhoneType() 返回设备的类型。 这将是以下值之一: TelephonyManager.PHONE_TYPE_NONE TelephonyManager.PHONE_TYPE_GSM TelephonyManager.PHONE_TYPE_CDMA READ_PHONE_STATE getSubscriberId() 返回用户识别码(的IMSI)的设备 READ_PHONE_STATE

getNeighboringCellInfo() 返回NeighboringCellInfo类代表名单 相邻小区的信息,如果可用,否则将 返回null ACCESS_COARSE_UPDATES

SIM 卡获取运营商信息相关推荐

  1. 根据手机sim卡获取运营商信息

    有的时候我们去获取手机运营商,显示给用户是移动,联通还是电信.android提供这套接口,可以拿到它. 1 核心代码,拿到电话管理者对象,从中去获取用户id,根据id的开头曲区分运营商信息 publi ...

  2. Android获取本机电话号码及运营商信息

    电话管理器TelephonyManager可访问电话服务信息,包括电话号码.运营商信息.wifi状态等.一些电话信息需要相应的权限,具体可以看API文件中TelephonyManager方法的说明. ...

  3. android获取各运营商信号,一篇关于 Android 获取运营商的全面笔记

    发表时间:2019-10-20 内容总览 本文会给出在 Android 上获取运营商的方法,几个相近方法结果的差异,以及在多卡情况下有效的获取方式.最后额外提一下一种不需要请求设备识别码获取运营商信息 ...

  4. android获取手机sim卡信息,Android获取手机SIM卡运营商信息的方法

    本文实例讲述了Android获取手机SIM卡运营商信息的方法,对于Android程序设计有非常实用的价值.分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: /** * 获取SIM卡运营商 ...

  5. android关闭应用及获取运营商ISP,判断sim卡属于哪个运营商

    android关闭应用及获取运营商ISP 1.AndroidManifest.xml <?xml version="1.0" encoding="utf-8&quo ...

  6. SIM卡运营商信息整理

    SIM卡运营商信息整理 须知:SIM相关信息摘自网络,仅供学习资料收集. 一.MCC号 (Move Country Code 移动国家号) 1.1 定义 移动国家号(MCC)由三位十进制数组成,它表明 ...

  7. Unity获取安卓手机运营商信息

    Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用 一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了 ...

  8. iphone 获取手机运营商信息

    获取手机运营商信息是通过获取imsi来判断的,它是有一个自己的标准和规则的,下面先介绍一下imsi: IMSI: 国际移动用户识别码(IMSI:International Mobile Subscri ...

  9. ios如何看idfv_ios获取手机状态 idfa   idfv   网络类型   分辨率   获取运营商

    标签:ios //idfa [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; //idfv [[[UI ...

最新文章

  1. Java是否为回文_java语言判断一个数字是否为回文数字
  2. 测试之道--阿里巴巴八年测试专家倾情奉献
  3. 基于JAVA+Swing+MYSQL的水果超市管理系统
  4. android中intent放数据类型,Android Intent传递数据底层分析详细介绍
  5. HP惠普打印机双面打印及常规操作
  6. 6款让人迅速成长的宝藏APP,他坚持学习了4年,月薪涨到了5万
  7. 单片机学习-利用intrins.h中的_crol_和_cror_进行流水灯位移
  8. 【机器视觉硬件】机器视觉硬件学习笔记2——工业相机
  9. IntelliJ IDEA 之汉化包安装
  10. 为什么计算机关机后自动开机,为何我家的电脑关机后又自动开机?
  11. 新一轮勒索病毒变种全球肆虐 中国已遭攻击
  12. vue中el-table翻页序号连续
  13. matlab中随机森林实现,随机森林实现 MATLAB
  14. Scrum板与Kanban如何抉择?敏捷工具:czsva板与按照mgzaqbpe
  15. 数字化转型再下一城,数字孪生厂商优锘科技宣布完成超3亿元融资
  16. 数据结构和算法(十)递归-迷宫游戏
  17. keil分散加载文件sct写法
  18. 十万 百万 级数据处理 以及可视化 画图
  19. 【对抗攻击论文笔记】对抗迁移性:Delving Into Transferable Adversarial Examples And Black-Box Attacks
  20. 主板开启网络唤醒_远程开机_网络唤醒设置方法 (WOL, Wake on Lan)

热门文章

  1. 樊登读书会极致读后感_【学习部落】樊登读书会可复制的领导力感悟
  2. 爱奇艺自研DRM技术斩获国家级专利奖 持续为内容创作者提供更高等级版权保护...
  3. LTE语音业务-VOLTE(一)
  4. 转载作品:人生重开模拟器(修仙7.0版)
  5. 29 使用内核里的W25Q32设备驱动
  6. 大厂技术实现 | 爱奇艺文娱知识图谱的构建与应用实践 @自然语言处理系列
  7. 如何修复excel文件损坏
  8. 华为交换机s2700怎么重置_华为s2700交换机初次使用常用配置命令
  9. PLC实训3:计数器控制电机循环启停
  10. matlab中如何对一组复数频域信号进行快速傅里叶逆变换