imei和imsi
imei、imsi是大部分应用自动采集的设备信息,Android中需要在MINIFEST声明权限,6.0以上手机还需要用户显示授权才可以正常获取。这两个标识有什么区别、联系?为什么应用这么执着于采集这两个信息呢?
imei
IMEI(International Mobile Equipment Identity,国际移动设备标识),imei与手机绑定。由15位数字组成,与每台移动设备一一对应,且该码全世界唯一。
imei结构:
TAC+FAC+SNR+SP
- TAC(Type Approval Code):6位,型号核准号码,代表机型。
- FAC(Final Assembly Code):2位,最后装配号,代表产地。
- SNR(Serial Number):6位,出厂序号、串号,代表生产顺序号。
- SP:1位,由厂家出厂设置,是校验码。
- 手机imei查看:****#06#****
- imei由GSMA协会统一规划,并授权各地区组织进行分配。
- imei和imsi存在一一对应关系,所以双卡双待手机有两个imei。
imsi
imsi(International Mobile Subscriber Identification Number)国际移动用户识别码,是区别移动用户的标识,存储在SIM(Subscriber Identity Module,用户识别模块)卡或者USIM(Universal Subscriber Identity Module,全球用户身份模块)中。 长度不超过15位,由0-9数字组成。
imsi结构:
MCC+MNC+MSIN
- MCC(Mobile Country Code,移动国家码):移动用户所属国家代号。MCC的资源由国际电信联盟(ITU,International Telecom Union)在全世界范围内统一分配和管理,唯一识别移动用户所属国家。MCC共3位,中国是460.
- MNC(Mobile Network Code,移动网号码):用于识别用户所属移动通信网,2-3位。同一个国家内,如果有多个PLMN(Public Land Mobile Network,一般某个国家的一个PLMN对应一个MNC),可以通过MNC区分。
中国移动:00、02、04、07
中国联通:01、06、09
中国电信:03、05、11
中国铁通:20 - 业务中,一般使用MCC、MNC判断用户所属网络,也是智能DNS线路切换依据。
全球各国MCC、MNC参考 MSIN(Mobile Subscriber Identification Number,移动用户识别码)用于识别某一移动网络中的具体用户。共10位。结构如下:
EF+M0M1M2M3+ABCD- 其中,EF由运营商分配,M0M1M2M3和MDN(Mobile Directory Number,移动号码簿)中的H0H1H2H3可以存在对应关系,ABCD则是自由分配的四位。
- MSISDN(Mobile Station International Subscriber Directory Number)即手机号码。
IMSI是在GSM(Global System of Mobile Communications,全球移动通信系统)的唯一识别码,在全网和全球范围统一。IMSI相同的SIM卡、USIM卡可能是非法制造出来的。
imei和imsi的更多相关文章
- 关于android各种双卡手机获取imei,imsi的处理(mtk,展讯,高通等)
目前国内对于双卡智能手机的需求还是很大的,各种复杂的业务会涉及到双卡模块:而android标准的api又不提供对双卡的支持.导致国内双卡模块标准混乱,各个厂商各玩各的.目前我知道的双卡解决方案就有:m ...
- 获取sim 卡的IMEI 和 IMSI
IReadOnlyList<string> networkAccIds = Windows.Networking.NetworkOperators.MobileBroadbandAccou ...
- 【Android】如何获取本机号码、IMSI、EMSI
获取本机号码: 获取本机号码,需要在配置文件中加入权限: <uses-permission android:name="android.permission.READ_PHONE_ST ...
- IMEI手机串码和serialno
IMEI 1.IMEI是什么 国际移动设备识别码(International Mobile Equipment Identity number,IMEI),俗称“手机串号”.“手机串码”.“手机序列号 ...
- uni-app开发经验分享十二: Android平台应用启动时读写手机存储、访问设备信息(如IMEI)等权限策略及提示信息
Android平台从6.0(API23)开始系统对权限的管理更加严格,所有涉及敏感权限都需要用户授权允许才能获取.因此一些应用基础业务逻辑需要的权限会在应用启动时申请,并引导用户允许. 读写手机存储权 ...
- Android 获取可靠的手机编码
项目中出现了将设备和用户信息进行绑定的需求.最先想到的是IMEI串码和IMSI串码.手机登陆的时候一直都没有问题.换了一个平板中之后IMEI和IMSI串码都获取不到了.后来查了一下原因,是因为平板上是 ...
- Android软件安全开发实践(下)
Android开发是当前最火的话题之一,但很少有人讨论这个领域的安全问题.本系列将分两期,探讨Android开发中常见的安全隐患和解决方案.第一期将从数据存储.网络通信.密码和认证策略这三个角度,带你 ...
- Java_HttpURLConnection使用
包括使用HttpURLConnection执行get/post请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...
- android获取手机信息大全
IMEI号,IESI号,手机型号: private void getInfo() { TelephonyManager mTm = (TelephonyManager) getSystemServic ...
随机推荐
- Sublime Text3 一些实用设置
字体大小 "font_size": 14 高亮编辑中的那一行 "highlight_line": true 当你把脑袋扭过到显示器以外的地方后再回头看编辑器,光 ...
- mysql 删除单表内多个字段重复的数据
mysql 删除单表内多个字段重复的数据 DELETE from lot_log_payflow WHERE (pay_no,sub_flow_type) in () s1) AND id ) s2) ...
- slf4j 作用及logback概述
为什么要使用slf4j 现实场景: 我们自己的系统中使用了logback这个日志系统 我们的系统使用了A.jar,A.jar中使用的日志系统为log4j 我们的系统又使用了B.jar,B.jar中使用 ...
- mysql命令行查看建表语句
命令如下: SHOW CREATE TABLE tbl_name 例子: mysql> SHOW CREATE TABLE t\G . row ************************* ...
- 异常处理:net.sf.cglib.beans.BulkBeanException
今天下午由于各种开会,断断续续写得代码,单元测试的时候,老是报如题的错误,后来查阅资料,发现原来是从数据库查询的值如果为空,则对应实体类执行set方法会赋值null给对应属性值,但是我当时的几个值偏偏 ...
- JBOSS Spring Web
jndi: <datasources> <xa-datasource> <jndi-name>jdbc/sss-local</jndi-name> &l ...
- gitlab之gitlab-ci和gitlab-runner<二>
1.使用 该版未接入k8s,下一篇会写接入k8s. 配置项目使用gitlab-ci和gitlab-runner,在项目的根目录中添加.gitlab-ci.yml文件,用于触发pipeline. .ho ...
- java为什么使用TypeReference
用途 在使用fastJson时,对于泛型的反序列化很多场景下都会使用到TypeReference,例如: void testTypeReference() { List<Integer> ...
- Deep learning with Python 学习笔记(5)
本节讲深度学习用于文本和序列 用于处理序列的两种基本的深度学习算法分别是循环神经网络(recurrent neural network)和一维卷积神经网络(1D convnet) 与其他所有神经网络一 ...
- AD阶段分类论文阅读笔记
A Deep Learning Pipeline for Classifying Different Stages of Alzheimer's Disease from fMRI Data -- Y ...