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字段即可         */        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")){        //中国电信        }}

IMSI:国际移动用户识别码(唯一标识),IMSI = MCC + MNC + MSIN,其中MCC是指移动台国家代码(3 位,中国460),MNC是指移动网代码(2 位中国00),MSIN是指移动用户识别号码(10 位 )

IMSI共有15位,其结构如下:

  MCC+MNC+MSIN ,(MNC+MSIN=NMSI)

  MCC:Mobile Country Code,移动国家码,MCC的资源由国际电联(ITU)统一分配和管理,唯一识别移动用户所属的国家,共3位,中国为460;

  MNC:Mobile Network Code,移动网络码,共2位,中国移动TD系统使用00,中国联通GSM系统使用01,中国移动GSM系统使用02,中国电信CDMA系统使用03,一个典型的IMSI号码为460030912121001;

  MSIN:Mobile Subscriber Identification Number共有10位,其结构如下:

  09+M0M1M2M3+ABCD

  其中的M0M1M2M3和MDN号码中的H0H1H2H3可存在对应关系,ABCD四位为自由分配。

  可以看出IMSI在MSIN号码前加了MCC即NMSI,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个移动网络运营商,可以通过MNC来进行区别.

android--获取手机的IMSI码 并判断是中国移动\中国联通\中国电信相关推荐

  1. android--获取手机的IMSI码,并判断是中国移动\中国联通\中国电信

    TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); /** 获取 ...

  2. android获取手机的IMSI码

    android--获取手机的IMSI码,并判断是中国移动\中国联通\中国电信转载 TelephonyManager telManager = (TelephonyManager) getSystemS ...

  3. android获取手机的国家码

    values/attr.xml<?xml version="1.0" encoding="utf-8"?> <resources>< ...

  4. php 判断联通移动电信,Android 判断SIM卡是中国移动\中国联通\中国电信(移动运营商)...

    第一种方法: 获取手机的IMSI码,并判断是中国移动\中国联通\中国电信 TelephonyManager telManager = (TelephonyManager) getSystemServi ...

  5. Android获取手机设备信息并区分真机与模拟器

    有些时候我们不想App在模拟器上被别人使用,所以我们禁止在模拟器上使用App 判断是否为真机: 根据以下四图,我们可以对真机与模拟器来做一个简单区分: 如果Serial码为unkonwn或者andro ...

  6. 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://2402766.blog.51cto.com/2392766/1080837 为了 ...

  7. android 6.0获取手机imei,android获取手机信息大全,android获取大全,IMEI号,IESI号,...

    android获取手机信息大全,android获取大全,IMEI号,IESI号, IMEI号,IESI号,手机型号: [java] view plaincopyprint?private void g ...

  8. android 获取手机运行的进程

    今天,简单讲讲如何获取系统运行的进程. ActivityManager.RunningAppProcessInfo类与获取正在运行的应用程序 每一个应用程序都会运行在它独立的进程里,但是为了节省资源或 ...

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

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

最新文章

  1. 【Kafka】Kafka为什么要加入分区的概念
  2. aspnet登录界面代码_SPA+.NET Core3.1 GitHub第三方授权登录
  3. C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set
  4. C语言给出任意4个数算24点,讨论24点算法。
  5. js数组遍历和对象遍历
  6. 如何在手机上安装Ubuntu Touch 13.10
  7. 【转】单例模式(Singleton)
  8. jquery模板插件jTemplates代替拼html
  9. python和java先学哪个-Python和Java,哪个容易学呢?
  10. 【数学基础】特征值,特征向量与SVD奇异值分解
  11. 无法启用数据库中的 Service Broker,因为已存在启用的具有相同 ID 的 Service Broker。...
  12. 植物大战僵尸修改存档用户名、关卡、金钱说明
  13. 软件测试实验课ppt,实验十 团队作业6:团队项目用户验收Beta冲刺
  14. 202105 word中部分文字有背景颜色,无法去除
  15. 男怕入错行 完美池宇峰畅谈创业点滴
  16. 世纪互联加入云计算专委会 推动应用进程
  17. 安装下载python的安装和配置
  18. Android水印相机
  19. HttpWebRequest 无法连接到远程服务器
  20. 黑解(ICCID)证书备份

热门文章

  1. k22.第九章 K8s进阶篇-高级调度计划任务临时容器 (三)
  2. 浙江大学计算机博士很难复试专业课,浙江大学考博英语复试经验参考
  3. 自组织神经网络SOM算法对Iris数据集进行聚类的matlab实现
  4. NodeJs核心技术-张晓飞-专题视频课程
  5. 食品的英语名称总结(实用级)
  6. Portfolio、program和project的联系和区别;它们与operation和OPM的关系
  7. Java版本:图书管理系统
  8. HTML学习之四CSS盒子
  9. CVE-2017-8464震网3.0漏洞分析与复现
  10. 上皮细胞膜纳米囊泡|MCF10A正常乳腺上皮细胞膜硅颗粒|MCF-7乳腺癌细胞膜包覆纳米载体平均粒径150nm