android上获取imsi码,判断运营商信息(移动,联通,电信)
来源:互联网 发布:淘宝开放平台开发 编辑:程序博客网 时间:2024/06/05 17:46
项目中要用到这个知识点,于是有整理这个知识点,并写成博文,以作备忘。
一.imsi码概念的理解
1.概念
IMSI:国际移动用户识别码(唯一标识),IMSI = MCC + MNC + MSIN,其中MCC是指移动台国家代码(3 位,中国460),MNC是指移动网代码(2 位中国00),MSIN是指移动用户识别号码(10 位 )。
2.结构
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来进行区别。
二.关键代码:
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")){ //中国电信 }}
0 0
- android上获取imsi码,判断运营商信息(移动,联通,电信)
- iOS 获取手机sim卡的运营商(移动,电信,联通) 相关信息
- Android通讯录开发之获取运营商号码段(移动、联通、电信)
- Android通讯录开发之获取运营商号码段(移动、联通、电信)
- 获取手机IMSI,区分移动联通 电信,4G问题
- 移动、联通和电信运营商最新号段判断
- 判断手机号码属于哪个地区 哪个运营商(移动、联通、电信、)
- iOS获取运营商信息(IMSI)
- 判断手机号码是否合法(移动,联通,电信)
- 通过IMSI运营商判断[Android]
- Android判断运营商无需获取imsi的方法
- JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单
- iphone 通过获取IMSI判断运营商
- iphone 通过获取IMSI判断运营商
- iphone 通过获取IMSI判断运营商
- iphone 通过获取IMSI判断运营商
- iphone 通过获取IMSI判断运营商
- Android 通过 IMSI 判断手机运营商
- LTP 测试分析
- UVA 208 FireTruck DFS
- Java温故知新之旅——关于修饰符
- hdu1072 Nightmare(BFS)
- IEEE期刊论文格式(一)
- android上获取imsi码,判断运营商信息(移动,联通,电信)
- VirtualBox内Linux系统怎样与Windows共享文件夹
- python vim 插件
- PL/SQL 包
- 使用awk来解析dump文件
- POJ 3273 Monthly Expense 二分+贪心
- quick-cocos2d-x 绑定C++自定义类
- [Leetcode]Best Time to Buy and Sell Stock II
- 使用jarisplayer实现网页视频播放