`
java_mzd
  • 浏览: 580663 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

android/ophone中本机号码的获取

阅读更多

本贴转自:CSDN中的 zeng666peng    http://blog.csdn.net/zeng622peng/archive/2010/10/21/5955773.aspx

 

 

首先我们来明确几个概念:

 

SIM 卡存储的数据可分为四类:

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

第二类是暂时存放的有关网络的数据。如位置区域识别码( LAI )、移动用户暂时识别码( TMSI )、禁止接入的公共电话网代码等。

第三类是相关的业务代码,如个人识别码( PIN )、解锁码( PUK )、计费费率等。

第四类是电话号码簿,是手机用户随时输入的电话号码。用户全部资料几乎都存储在 SIM 卡内,因此 SIM 卡又称为用户资料识别卡。

 

IMSI 是一个唯一的数字, 标识了GSMUMTS 网络里的唯一一个用户. 它存储 在手机的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 卡中。这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。这就是为什么很多人得不到本机号码的原因。

 

名词解释:

IMEI (International Mobile Equipment Identity) 是国际移动设备身份码的缩写,国际移动装备辨识码,是由15 位数字组成的" 电子串号 " ,它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。

IMSI :(InternationalMobileSubscriberIdentificationNumber )国际移动用户识别码,是区别移动用户的标志,储存在SIM 卡中,可用于区别移动用户的有效信息。其总长度不超过15 位,同样使用09 的数字。其中MCC 是移动用户所属国家代号,占3 位数字,中国的MCC 规定为460MNC 是移动网号码,最多由两位数字组成,用于识别移动用户所归属的移动通信网;MSIN 是移动用户识别码,用以识别某一移动通信网中的移动用户。

分享到:
评论
2 楼 java_mzd 2010-11-03  
hold_on 写道
我的理解:
手机号码 就像 IP地址;
而IMEI就像网卡中的MAC地址(Media Acess Control),都是在出厂的时候由厂家设定的
并且理论上都是唯一的,但应该可以通过硬件进行修改


恩,是可以改的,我大二的时候倒腾手机就发现了有哪些软件,不过需要一个SIM卡读卡器什么的。
   恩,你的那个理解确实很好的对比了啊
1 楼 hold_on 2010-11-03  
我的理解:
手机号码 就像 IP地址;
而IMEI就像网卡中的MAC地址(Media Acess Control),都是在出厂的时候由厂家设定的
并且理论上都是唯一的,但应该可以通过硬件进行修改

相关推荐

Global site tag (gtag.js) - Google Analytics