获取本机号码及sim卡信息

news/2024/11/25 17:36:39/

一、SIM卡存储的数据可分为四类,它们分别是:
第一类是固定存放的数据。这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI)、鉴权密钥(KI)、鉴权和加密算法等等。
第二类是暂时存放的有关网络的数据。如位置区域识别码(LAI)、移动用户暂时识别码(TMSI)、禁止接入的公共电话网代码等。
第三类是相关的业务代码,如个人识别码(PIN)、解锁码(PUK)、计费费率等。
第四类是电话号码簿,是手机用户随时输入的电话号码。用户全部资料几乎都存储在SIM卡内,因此SIM卡又称为用户资料识别卡。
IMSI是一个唯一的数字, 标识了GSM和UMTS 网络里的唯一一个用户. 它存储 在手机的SIM卡里,它会通过手机发送到网络上. IMSI 与 SIM唯一对应.
IMEI也是一串唯一的数字, 标识了 GSM 和 UMTS网络里的唯一一个手机.它通常被打印在手机里电池下面的那一面,拨 *#06# 也能看到它. IMEI 与设备唯一对应.
我们要注意以下几点:
1.IMEI不存在于SIM卡中,它是手机本身的串号。 
2.通常我们所说的手机号也不存在于SIM卡中,虽然SIM卡中有一个专门存储SIM卡本身号码的地方,但是此号码是通过手工设定的,而且是可以更改的。   SIM卡的识别通常使用IMSI号,这个对于SIM卡是唯一的。
3.使用SimGetRecordInfo之类的函数获得SIM卡的IMSI号码能否成功依赖于设备制造商是否实现了此函数,据我所知在DOPOD的机器上是可以获得,但是在联想的机器上却不行,其他机器没有。
4.获得IMEI以及IMSI可以通过RIL或者TAPI中的LINE操作的函数获得。
二、下面给出获取手机本机号码及Sim卡状态的代码:
TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);       
String deviceid = tm.getDeviceId();
String tel = tm.getLine1Number();
String  imei = tm.getSimSerialNumber();     
String imsi = tm.getSubscriberId();
String simState = tm.getSimState();
复制代码
三、添加权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
复制代码
注意:手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中。这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。这就是为什么很多人得不到本机号码的原因。
四、名词解释:
IMEI:(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。
IMSI:(InternationalMobileSubscriberIdentificationNumber)国际移动用户识别码,是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。其中MCC是移动用户所属国家代号,占3位数字,中国的MCC规定为460;MNC是移动网号码,最多由两位数字组成,用于识别移动用户所归属的移动通信网;MSIN是移动用户识别码,用以识别某一移动通信网中的移动用户


http://www.ppmy.cn/news/664996.html

相关文章

使用AT命令获取本机号码

我之前认为手机号码与SIM卡是一一对应的&#xff0c;后来想想不对&#xff0c;因为有换卡不换号的情况啊&#xff0c;所以SIM卡应该只是一个电话号码的储存介质&#xff0c;而与SIM卡一一对应的是另一个编码——IMSI&#xff08;国际移动签署这标识&#xff09;。以下为获取IMS…

JavaScript:数组字段大写转为小写

我们可以使用forEach()方法&#xff0c;遍历数组中的每个对象&#xff0c;然后将所有字段都转换为小写。 首先使用forEach()方法遍历数组中的每个对象。然后&#xff0c;使用Object.keys()方法获取对象中的所有字段名&#xff0c;并将它们全部转换为小写。最后&#xff0c;重新…

VS2022编译运行VS2015的项目

最近新装了VisualStudio2022&#xff0c;有一些VS2015老的项目需要运行&#xff0c;但不想再安装VS2015&#xff0c;就想能否直接在VS2022编译运行&#xff0c;研究一下发现可行&#xff0c;记录一下。 1. 直接升级VS2015项目到2022使用windows sdk 10.0 发现老代码里的一些语…

IOS之条形码

在我们开发ios应用时&#xff0c;尤其是电子商务类应用&#xff0c;时常遇到条形码扫描的业务需求&#xff0c;幸运的已经有开源的SDK供我们使用──条形码的SDK for ios&#xff0c;下面介绍一下这个开源的SDK的使用方法&#xff1a; 免费的条形码是zbar,下载地址是:http://zb…

PHP用barcode生成条形码

下载barcode 将项目放到网站根目录 示例代码 require_once(./barcode/class/BCGColor.php);require_once(./barcode/class/BCGDrawing.php);require_once(./barcode/class/BCGcode128.barcode.php);$colorFront new \BCGColor(0, 0, 0);$colorBack new \BCGColor(255, 255…

条形码怎么申请?

1、条形码是什么&#xff1f; 条形码又被叫做69码或者EAN条形码&#xff0c;其中的数字编码是世界通用的。是将宽度不等的多个黑条和空白&#xff0c;按照一定的编码规则排列&#xff0c;用以表达一组信息的图形标识符。 条形码可以标出物品的生产国、制造厂家、商品名称、生产…

条形码和二维码

前言&#xff1a;需要的包的相关文档 1. Barcode&#xff1a;https://pypi.org/project/python-barcode/0.8.1/ 2. Qrcode&#xff1a;https://pypi.org/project/qrcode/ 3. Zbar: https://pypi.org/project/pyzbar/ 4. Opencv: https://docs.opencv.org/3.4.11/ 5. OpenC…

条形码(Bar Code)概述

条形码的产生 社会的发展产生新的需求&#xff0c;于是新的技术应运而生。条形码也不例外。 想像一下&#xff0c;在超市结账的时候&#xff0c;你推着一车子的东西&#xff0c;柜台服务员一个商品接一个商品的手动计算你的购买总金额&#xff0c;这会是一个多么恐怖的场景。…