一、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是移动用户识别码,用以识别某一移动通信网中的移动用户

获取本机号码及sim卡信息相关推荐

  1. Android 系统(259)---获取本机号码及sim卡信息

    获取本机号码及sim卡信息 一.SIM卡存储的数据可分为四类,它们分别是: 第一类是固定存放的数据.这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI).鉴权密钥(KI ...

  2. android通过sim卡获取本机号码,Android获取本机号码及Sim卡状态

    SIM卡存储的数据可分为四类: 第一类是固定存放的数据.这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI).鉴权密钥(KI).鉴权和加密算法等等. 第二类是暂时存放的 ...

  3. Android本机号码及Sim卡状态的获取

    SIM卡存储的数据可分为四类: 第一类是固定存放的数据.这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI).鉴权密钥(KI).鉴权和加密算法等等. 第二类是暂时存放的 ...

  4. 安卓系统根据SIM卡槽ID获取SIM卡信息

    导入一个包: import android.telephony.SubscriptionManager; 声明变量: SubscriptionManager mSubscriptionManager ...

  5. Android获取本机号码、IMEI等

    SIM卡存储的数据可分为四类: 第一类是固定存放的数据.这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI).鉴权密钥(KI).鉴权和加密算法等等. 第二类是暂时存放的 ...

  6. ios获取sim卡信息以及手机号码

    1.加入一个Framework(CoreTelephony.framework).2.引入头文件#import <CoreTelephony/CTTelephonyNetworkInfo.h&g ...

  7. 获取SIM卡信息的工具类

    本工具类可以获取手机的IMSI.本机的手机号码.SIM卡的服务商. 移动.联通可正常获取到SIM卡的手机卡号,但是电信的获取不到.... 首先,需要在AndroidManifest.xml清单配置文件 ...

  8. Android开发之获取手机SIM卡信息

    TelephonyManager是一个管理手机通话状态.电话网络信息的服务类,该类提供了大量的getXxx(),方法获取电话网络的相关信息. TelephonyManager类概述: 可用于访问有关设 ...

  9. Android开发之获取SIM卡信息和手机号码

    获取SIM卡信息和手机号码的工具类,记录一下方便以后使用 import android.content.Context; import android.telephony.TelephonyManag ...

  10. 双卡android手机SIM卡信息探索 ,获取手机 SIM卡数量和SIM卡id、iccid

    废话不多,直接上干货==> 1 以下所有方法都需要在AndroidManifest.xml声明权限 <uses-permission android:name="android. ...

最新文章

  1. 【禅模式】如何进入极度专注的心流状态,让前端开发能力发挥到最大?设置VSCode禅模式快捷键Alt+F切换全屏,适合演示代码使用
  2. python安装选项_python设置执行选项参数
  3. DevExpress的TreeList实现自定义右键菜单打开文件选择对话框
  4. VTK:图片之ImageMask
  5. redis在php中的用法,使用PHP-redis操作Redis
  6. Echarts文字大小自适应,案例详解
  7. 走马观花式旅游?汉服女子景区内抱着电脑边办公边赏景
  8. iPhone 14 Pro影像规格曝光:升级48MP主摄 镜头模组也大了
  9. 结对项目:黄金点游戏(何珠赵艳)
  10. windows 与linux实现文件共享
  11. 一起撸个简单粗暴的Tv应用主界面的网格布局控件(上)
  12. 微信小程序地图与位置相关操作
  13. 涉密计算机用户密码操作规程,涉密计算机管理设置密码
  14. cmake 添加asan功能
  15. 海洋cms宝塔定时linux,海洋cms设置宝塔计划任务自动采集
  16. Web Scraper爬虫
  17. Win10设置系统补丁更新服务器,win10如何关闭自动更新补丁_win10关闭自动更新补丁的图文教程...
  18. python经典代码
  19. Linux如何配置ssh key
  20. Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理

热门文章

  1. jquery gotop插件
  2. Windows10 家庭版关闭安全中心(defender)
  3. 操作系统期末大题类型题解
  4. element-plus 中loading 自定义图片
  5. 零基础入门:基于开源WebRTC,从0到1实现实时音视频聊天功能
  6. MySQL之my.cnf配置文件
  7. excel单元格内容拆分_EXCEL批量拆分单元格,也可以这么快
  8. 【C语言】下标法 编写数组元素的输入与输出
  9. 如何关闭android键盘,软键盘怎么关?软键盘关闭方法
  10. 关于求余和取模的区别以及负数取摸