IMSI 全称为 International Mobile Subscriber Identity,中文翻译为国际移动用户识别码。它是在公众陆地移动电话网(PLMN)中用于唯一识别移动用户的一个号码。在GSM网络,这个号码通常被存放在SIM卡中。
IMEI 全称为 International Mobile Equipment Identity,中文翻译为国际移动装备辨识码, 即通常所说的手机序列号,用于在手机网络中识别每一部独立的手机,是国际上公认的手机标志序号,相当于移动电话的身份证。序列号共有15位数字,前6位(TAC)是型号核准号码,代表手机类型。接着2位(FAC)是最后装配号,代表产地。后6位(SNR)是串号,代表生产顺序号。最后1位(SP)一般为0,是检验码,备用。国际移动装备辨识码一般贴于机身背面与外包装上,同时也存在于手机记忆体中,通过输入*#06#即可查询。
Android中获取IMSI和IMEI的代码很简单,如下:view sourceprint?1 TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
2 String imsi = mTelephonyMgr.getSubscriberId();
3 String imei = mTelephonyMgr.getDeviceId();
4 Log.i("IMSI", imsi);
5 Log.i("IMEI", imei);
另外不要忘了在AndroidManifest.xml中加上读取手机状态的权限view sourceprint?1 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
===========================
IMSI国际移动用户识别码(IMSI) international mobile subscriber identity
国际上为唯一识别一个移动用户所分配的号码。
从技术上讲,IMSI可以彻底解决国际漫游问题。但是由于北美目前仍有大量的AMPS系统使用MIN号码,且北美的MDN和MIN采用相同的编号,系统已经无法更改,所以目前国际漫游暂时还是以MIN为主。其中以O和1打头的MIN资源称为IRM(International Roaming MIN),由IFAST (International Forum on ANSI-41 Standards Technology)统一管理。目前联通申请的IRM资源以09打头。可以看出,随着用户的增长,用于国际漫游的MIN资源将很快耗尽,全球统一采用IMSI标识用户势在必行.
IMSI共有15位,其结构如下:
MCC+MNC+MIN
MCC:Mobile Country Code,移动国家码,共3位,中国为460;
MNC:Mobile Network Code,移动网络码,由两位数字组成,用于识别移动用户所归属的移动网.MIN:移动用户识别号码,是一个十位的等长号码.
可以看出IMSI在MIN号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个CDMA运营商,可以通过MNC来进行区别. IMEI 国际移动装备辨识码 International Mobile Equipment Identity由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。 首先你要知道什么是手机串号,IMEI俗称“串号”存储在手机的EEPROM(俗称码片)里,每一个移动设备都对一个唯一的IMEI。其组成结构为TAC(6位数字)+FAC(两位数字)+SNR(6位数字)+SP (1位数字)。TAC(设备型号核准号码),由欧洲型号认证中心分配。如果熟悉并了解这个号码对我们今后识别手机会起到非常大的作用.首先TAC码前三位在不同的时期会发生变化,过去的TAC码前三位在现在的手机上不会出现。过去的一些老型号的手机基本上都是446/448开头,如moto v328 nokia 7110,而且即使同一部手机在不同的时期也会有不同的TAC码如大家最熟悉的8210升级8250,如果前三位是448902就不能升级,因为CPU不同。因此过去所说的只要是同一型号的手机TAC码一定一样的说法是不够准确的,再如爱立信的同一型号手机T39MC在不同地区的地方亦会有不同的号码大陆行货为520406香港则为520407。我们知道这些区别后就可以通过TAC码来进行“设备识别”了,而不必去费心的去牢记IMEI的7.8位数字代表的产地。
另外如果是同一型号的手机其TAC码不同至少说明该机在硬件上有差别,比如NOKIA8210,采用老版本CPU的8210的TAC码是448902,而一般能够写入8250软件版本TAC码则是350开头。实际上TAC码前三位代表的更多的是手机FTA后分配IMEI的时间,真正的设备型号鉴别还是后三位。在2手市场JS通常用T20的主板换上T29的外壳冒充T29售卖,然而T20TAC码为520259真正的T29SC则为520341,因此在拿到这样的手机的时候你只需要查看IMEI的TAC就能够了然于胸,但这并不意味IMEI7,8位没有作用,FAC(工厂装配码)由厂家编码,通常表示生产厂家及其装配地。这也是过去我们最为关注的数字,因为一般作为鉴别产地的号码,它能有非常有效的帮助用户识别手机来源和真伪。比如NOKIA的40/60地球人都知道代表产地是北京和东莞,只要不是这两个号码都被视为水货。而且如果我们结合TAC更可以进一步了解该机的真实身份,例如前面说过T20/T29,我们知道T29是爱立信在北京生产的而T20则产于南京,那么如果一部T29的IMEI上是520259-63。。。呵呵~~那么肯定是假货了。
有时FAC也不能完全证明手机是否是行货,T68上市后热买一度造成缺货,因此爱立信代理商调集了一部分马来西亚生产(FAC码71)紧急救援,因此这部分有入网许可证T68同样是“行货”。(前面我们我们说过了IMEI和取得入网许可证之间的联系)不过,需要指出的是这部分T68仅限于前期一部分软件版本为R1B的T68。
FAC码也不是一成不变的即使是同一产地的产品,如西门子3508I和MOTO C300因为其产量巨大已经从开始的37升级到40,而C300的行货FAC也有80/81/82。尤其重要的是欧洲型号认证中心今年重新分配了IMEI,FAC被和TAC合并在一起,FAC码的数字统一从00开始,因此无论什么型号什么品牌其7,8位均为00,如最新的C289,三星V200 、西门子A55、 索尼爱立信T618都在手机上出现了351***00这样的IMEI。幸好我们有前面介绍过的TAC码鉴别办法,如T618的IMEI虽然过去的FAC现在统一为00但港行和大陆行货TAC后三位上还是有差异的.港行为351253大陆T618为351254,其实这里已经说明了一个问题351253代表的是T610(中文繁体版)351254则为T618。而TAC码的真正含义正在于此--设备型号核准。
接下来该说SNR码了。SNR码即序号码,也由厂家分配。识别每个TAC和FAC中的某个设备的。每一部手机的SNR都不会一样.简单的说该号码可以说明手机出产日期的先后,通常数值越大说明该机型出厂时间越晚,所以如果一部刚上市不久的手机的IMEI上出现了6位的数字你就得了小心了,因为刚上市不久的手机其SNR最多不会超过四位,大家可以在购机时留意一下。也许这可以作为鉴别手机是否被JS修改IMEI的好办法之一。
SP备用码,顾名思义用来做备用的,关于SP只有一点需要说明现在的SP基本上没有象过去文章所说那样“一般为0”了,其号码由厂家做设置,可忽略。
当然,有些手机在IMEI 上做了自己的定义.爱立信手机在待机时输入*#06#就会出现17位的IMEI,其最后两位的主要作用是用来识别软件版本。这里需要说明的是三星V200也开始使用17位的IMEI了,最后两位的主要作用是用来识别软件版本,一般来说数值越低版本也越低,比如T618的R1A版本为02而R1F版本则为03,最新的R1L版本是05。
IMEI为TAC + FAC + SNR + SP
其组成为:
1、前6位数(TAC)是"型号核准号码",一般代表机型。
2、接着的2位数(FAC)是"最后装配号",一般代表产地。
3、之后的6位数(SNR)是"串号",一般代表生产顺序号。
4、最后1位数(SP)通常是"0",为检验码,目前暂备用。
IMEI码贴在手机背面的标志上,并且读写于手机内存中。它也是该手机在厂家的"档案"和"身份证号"。
如何获得手机的IMEI码:可以在手机上按“*#06#”获得手机的IMEI码。
分享到:
相关推荐
VC++编写的手机设备信息读取,包括IMEI IMSI 设备ID
对应的文档(源代码)如下: http://blog.csdn.net/a_flying_bird/article/details/38309021
获取android手机硬件信息,如通讯录,手机版本,系统版本,SDK版本,所有安装包,本机号码,设备ID,IMEI,IMSI,GPS 地理位置定位
基于Android10.0的设备上,获取相应的MAC地址,手机IMEI号,手机号,手机MSISDN号,手机ICCID号,进行可行性验证,特别是MAC地址方面,在Android10.0前后的设备均进行相应的接口验证,保证其可用性。适合正在致力于...
总结了一些获得手机相关信息的方法,有设备信息(imei,imsi,手机号码,sim卡序列号等);屏幕信息(屏幕的宽和高);语言信息(手机所使用的语言,所在国家);联网信息(手机当前连接的网络的信息)。
Android 关于设备状态和操作的API。 获取总大小 获取可用大小 获取SD卡的总大小 获取SD卡可用大小 获取总内存大小 获取可用内存大小 获取系统版本 安装客户端 获取FilesDir目录 获取SD卡路径 ...获取手机IMSI
Android端获取手机IMEI,IMSI, MAC等授信功能的工具类,还包括屏幕宽高,屏幕亮度,网络类型判断等
DeviceId(IMEI) DeviceSoftwareVersi Line1Number NetworkCountryIso NetworkOperator NetworkOperatorNam NetworkType PhoneType SimCountryIso SimOperator SimOperatorName SimSerialNumber SimState ...
允许获取模块信息,可以读取模块厂商,设备ID,IMEI,IMSI及所属网络 6.允许用户设定短信自动接收 7.允许用户设定读取短信后是否删除 8.短信发送状态指示 9.BenQ M22模块及其AT指令兼容模块适用 10.数据捕获功能,方便...
*2767*3855#(EEPROM总复位,IMEI有可能会变成初始码) 4 j( y8 ?& Z8 q *#9999#(查版本) 4 N* Z0 |' p; F: { *#0523#(调LCD对比度) : ], C8 y9 `# F0 \! K. t ?! O1 N *2767*7377# (解手机密码的复位...
getAppsInfo : 获取所有已安装 App 信息 cleanAppData : 清除 App 所有数据 栏相关 -> BarUtils.java -> Demo getStatusBarHeight : 获取状态栏高度(px) addMarginTopEqualStatusBarHeight : 为 view 增加 ...
本项目抹平了各大Android手机厂商获取OAID(开放匿名标识)的差异性,轻松通过几句代码即可获取不同手机的OAID,可作为移动安全联盟官网提供的SDK闭源方案(miit_mdid_xxx.aar )的替代方案。 引入指引 最新版本: ...