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

news/2024/11/25 13:32:18/

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

转载于:https://www.cnblogs.com/wangzehuaw/p/3995356.html


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

相关文章

android fwk开发之堡垒机的使用

在Android堡垒机&#xff08;Ubuntu&#xff09;服务器上编译android AOSP源码。 1. 添加用户 1、切换到root用户&#xff1a; sudo su - 2、添加账户&#xff1a;useradd -m username 删除用户&#xff1a;userdel -r username 使用useradd创建的账户需要修改密码 修改用户密…

android/ophone中本机号码的获取

首先我们来明确几个概念&#xff1a; SIM卡存储的数据可分为四类&#xff1a; 第一类是固定存放的数据。这类数据在移动电话机被出售之前由SIM卡中心写入&#xff0c;包括国际移动用户识别号&#xff08;IMSI&#xff09;、鉴权密钥&#xff08;KI&#xff09;、鉴权和加密算法…

Android获取本机号码、IMEI等

SIM卡存储的数据可分为四类&#xff1a; 第一类是固定存放的数据。这类数据在移动电话机被出售之前由SIM卡中心写入&#xff0c;包括国际移动用户识别号&#xff08;IMSI&#xff09;、鉴权密钥&#xff08;KI&#xff09;、鉴权和加密算法等等。 第二类是暂时存放的有关网络的…

android 验证 号码,本机号码校验

本机号码校验 接入前准备 请联系技术支持:文档中心右侧“技术咨询” 开通权限。 配置SDK 如果您已经接入了一键登录功能,那么可以跳过以下配置SDK步骤。 在接入本机号码校验之前,请先确认已经集成个验SDK。下文使用到的资源文件,均可在官网下载的SDK资源包中获得。调用一键…

获取本机号码及设备信息

一、获取手机号码 步骤如下&#xff1a; 1&#xff09;导入CoreTelephony这个private framework 2&#xff09;在xxx.m中加入红字部分&#xff1a; #import "xxx.h" extern NSString *CTSettingCopyMyPhoneNumber(); implementation (NSString *)myNumber{ …

Android中如何获得本机号码信息

如何在Android上获取本机电话号码&#xff0c;目前Android上提供了一个API可以读取早期SIM卡上固化的号码&#xff0c; private String getPhoneNumber(){ TelephonyManager mTelephonyMgr; mTelephonyMgr (TelephonyManager) getSystemService(Context.TELEPHON…

ios获取本机号码等

原文地址:http://www.devdiv.com/forum.php?modviewthread&tid90494&fromuid11551 步骤如下&#xff1a; 1&#xff09;导入CoreTelephony这个private framework 2&#xff09;在xxx.m中加入红字部分&#xff1a; #import "xxx.h" extern NSString *CTSet…

怎么看联想计算机的ip,如何查看本机ip

ip地址是我们连上互联网的凭证&#xff0c;每台能连上互联网的电脑都会分配有一个ip地址。每台电脑的IP地址都不唯一&#xff0c;并且从我们主机的IP地址上可以看出我们电脑连上互联网的所在位置与地区&#xff0c;就像我们生活中的门牌号码一样。很多朋友还不知道本机ip怎么查…