Android 系统应用-通信应用-MCC、MNC和IMSI的介绍以及运营商标识码对应表

本文介绍了如何通过MCC/MNC获取手机用户的运营商,包括中国移动、中国联通和中国电信,以及IMSI的组成和在全球漫游中的作用。重点展示了在代码中获取IMSI的方法,并阐述了运营商识别在CTA入网和定制需求中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

如何获取当前卡的运营商?

得到运营商之后有什么用途?

二、基础介绍

MCC 移动国家码(Mobile Country Code)

由于MCC是全球通用的一个标准码,所以它是由国际电联组织ITU(International Telecommunication Union)统一分配与管理的,其作用就是用于标识移动用户所属的国家或地区。

MCC码共3位。中国大陆的MCC是460。

中国香港:454(454, "Hong Kong", "HK", "香港")

中国澳门:455

中国大陆:460(460, "China", "CN", "中国")

中国台湾:466(466, "Taiwan", "TW", "台湾")

注意:一个国家也可以分配多个MCC。如美国的MCC:310, 311和316共三个。

MNC 移动网络码(Mobile Network Code)

由于在很多国家或地区进行电信运营的电信运营商及其运营的移动网络有多个,因此为了区别其电信运营商及其移动网络,所以制定了MNC,用以标识各运营商的所有移动网络。

MNC码共2位。(后续新的运营商入网后,会更新MNC)

中国移动:00,02,04,07,08,20,99

中国联通:01,06,09

中国电信:03,05,11,12,13

一般MCC与MNC是搭配在一起使用的,其又称 HNI 归属网络识别码(Home Network Identity)HNI = MCC + MNC,用于标识用户所归属的网络(注:此处的网络等同于PLMN)

具体举例如下:

46000, "CHINA MOBILE", "CN"      中国移动

46001, "CHN-CUGSM", "CN"         中国联通

46002, "CHINA MOBILE", "CN"      中国移动

46003, "CHINA TELECOM", "CN"  中国电信

45400, "CSL", "HK"                  香港电讯

45401, "NEW WORLD", "HK"  香港新世界

45404, "Orange", "HK"             香港Orange

46692, "Chunghwa", "TW"       中华电讯

46697, "TWN GSM", "TW"       台湾大哥大

三、IMSI 扩展介绍

IMSI 国际移动用户识别码(International Mobile Subscriber Identity)

国际上唯一识别一个用户所分配的号码。IMSI的用途是为了彻底解决国际间的通话问题。但是由于一些国家地区使用的老的技术标准,导致无法兼容,目前还是以老的技术标准为主,不过老的技术标准劣势明显,全面启用IMSI已经是板上钉钉了。(这里的一些国家地区,目前就是北美地区,当前分为北美网络和北美以外的网络)

关于漫游的相关介绍看后续补充,这一块牵扯的实在太多了。

回到IMSI

不管是在北美网络或者是在非北美网络里,IMSI的组成格式都一样:IMSI = MCC + MNC + MSIN,两个网络最重要的差异就是,其生成的全球标题不一致,导致两个网络进行通话时,需进一步进行全球标题格式转换。北美以外的网络的全球标题 = CC(国家码E.123标准) + NC(网络码E.123标准) + MSIN北美网络的全球标题 = IMSI = MCC + MNC + MSIN(其全球标题与IMSI一致)这里又冒出来了个MSIN的东西。

MSIN 移动订户识别代码(Mobile Subscription Identification Number)

MSIN是由运营商自行分配的,共10位十进制数字。它的构成也有它的一套规则在里面,此处不再详细介绍了,因为越扯概念越多。

如此,各个国家的手机用户之间便能拨打国际漫游电话了。

四、如何在代码中获取IMSI等,并使用它们(注:由于当前没有相关代码,多卡获取IMSI的情况后续更新,下列代码可作为参考)

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

String imsi = tm.getSubscriberId();

if (null != imsi) {

    if (imsi.startsWith("46000") || imsi.startsWith("46002") || imsi.startsWith("46004")) {//中国移动

    } else if (imsi.startsWith("46001")) {//中国联通

    } else if (imsi.startsWith("46003")) {//中国电信

    }

}

五、获取运营商的意义

最直接的应用环境,就是对CTA入网要求以及入库要求定制。

当然还有其他的一些需求定制需要,也会用到。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值