手机号码信息的获取
来源:互联网 发布:数据总表按字段拆分 编辑:程序博客网 时间:2024/04/30 19:25
首先我们来明确几个概念:
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操作的函数获得。
下面给出获取手机本机号码的代码:
TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
String deviceid = tm.getDeviceId();
String tel = tm.getLine1Number();
String imei = tm.getSimSerialNumber();
String imsi = tm.getSubscriberId();
添加权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
注意,手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中。这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。这就是为什么很多人得不到本机号码的原因。
- 手机号码信息的获取
- WebService之获取手机号码信息
- 获取手机号码联系人,短信信息
- 通过Httpclient的get,post获取手机号码信息
- 获取手机的手机号码
- 调用手机号码归属地接口获取手机号码信息
- 获取手机号码和一些手机信息
- Android中获取手机号码和运营商信息
- 如何获取手机设备信息和手机号码
- android获取SIM卡信息和手机号码
- ios获取sim卡信息以及手机号码
- android获取SIM卡信息和手机号码
- 获取本机的手机号码
- 手机号码的API获取接口
- android 安卓APP获取手机设备信息和手机号码的代码示例
- android安卓APP获取手机设备信息和手机号码的代码示例
- android 安卓APP获取手机设备信息和手机号码的代码示例 .
- android 安卓APP获取手机设备信息和手机号码的代码示例
- 使用Spread Studio for .NET如何选择工作表
- Kestrel持久化队列服务器
- Suse Linux下内存使用率精细解读
- menuconfig---Unable to find the Ncurses libraries问题解决
- oracle数据库恢复方法及ORA-01991错误的解决
- 手机号码信息的获取
- jms activeMQ与spring的集成
- Kestrel and Storm
- 链表(创建,插入,删除和打印输出)
- CIRCOS教程翻译 4.6——Label format
- 常见错误 集
- MFC 灾难性故障
- 【设计模式】bridge模式
- 两分钟学会在GitHub托管代码