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

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"))

{          //中国电信      }  }

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来进行区别.

转载于:https://www.cnblogs.com/code4app/p/3689212.html

android获取手机的IMSI码相关推荐

  1. android获取手机的国家码

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

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

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

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

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

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

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

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

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

  6. Android获取手机通话记录的方法

    获取手机通话记录流程: 1. 获取ContentResolver; ContentResolver resolver = getContentResolver(); 2.resolver.query( ...

  7. Qt for Android获取手机序列号/手机型号/手机制造商

    前言 Qt for Android 获取手机型号/手机制造商/手机序列号,这些是要通过 Android 原生接口才能获取到的, 那么在 Qt 项目中通过 jni 接口调用 Android 原生接口来获 ...

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

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

  9. android 获取已安装 错误代码,android获取手机已经安装的app信息

    Android获取手机已安装APP(系统/非系统) 效果图 主体代码 private ListView mlistview; private ListpackageInfoList; private ...

最新文章

  1. 16-CoreData之多表关联(存储自定义数据模型)
  2. 如何实现自己的机器做服务器
  3. Mac openCV环境搭建
  4. Oracle杀事务数据库崩溃,关于pl/sql dev窗口崩溃导致锁表
  5. cad多个窗口并排显示_你早该这么做!并排查看Excel工作表其实一个小动作就搞定!...
  6. win10死机频繁怎么解决
  7. ElasticSearch API文档查看
  8. 将图片文件通过byte[]字节数组Base64加密后给前端显示
  9. UI设计入门:解析设计标注规范和图标规范
  10. 计算机考研机试指南(九)——搜索(百鸡问题、ABC、胜利大逃亡、迷宫问题、C翻转、旋转矩阵、字符串匹配、)...
  11. P+XS算法中Dirac comb的解释
  12. visio 2010图形安装包
  13. 如何用java实现一个p2p种子搜索(4)-种子获取
  14. 手机怎样和宽带连接无线路由器设置路由器连接服务器,手机设置路由器步骤_用手机怎么设置路由器?-192路由网...
  15. IT行业英语自我介绍必备
  16. 城市地铁类毕业论文文献包含哪些?
  17. 对话Huobi Prime首发项目TOP:李林80%的时间都在问项目能否落地
  18. 世界上最好用的FTP服务器管理工具
  19. 逆元 阶乘逆元 数论 HDU 5651 xiaoxin juju needs help
  20. 为何64位的.NET程序不能申请超过2G的空间

热门文章

  1. Python itertools chain
  2. C++ vector
  3. 3.5 将 Batch Norm 拟合进神经网络
  4. Series.str.split([pat, n, expand])
  5. c++并发操作mysql_文件数据库sqlite3 C++ 线程安全和并发
  6. byte 类型_java知识总结(九):基本类型转换
  7. 杉岩数据:5种常见容灾复制技术图解
  8. vSphere 故障排错思路总结
  9. 管理站点复制 【Windows Server 2019】活动目录(Acitve Directory)——在同一区域安装多台域控制器
  10. Go 语言学习总结(7)—— 大厂 Go 编程规范总结