(转)android 如何获取手机信息总结

来源:互联网 发布:易语言股票源码 编辑:程序博客网 时间:2024/05/16 01:08

转载自:http://blog.sina.com.cn/s/blog_7e448beb0100w1hl.html  点击打开链接

首先说说要明确的几个概念:

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

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

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

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

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

 

SIM卡唯一标识:IMSI国际移动用户识别码(IMSI:International Mobile Subscriber IdentificationNumber)是区别用户的标志。
注: IMSI储存在SIM卡中,用于区别用户的有效信息。IMSI由MCC、MNC、MSIN组成,其中MCC为移动国家号码由3位数字组成,唯一地识别客户所属的国家,我国为460;MNC为网络id,由2位数字组成,用于识别客户所归属的移动网络,中国移动为00,中国联通为01,中国电信为03;如果开发人员要知道sim卡是哪个运营商的
只需取得SIM卡中的MNC字段即可

IMSI和IMEI的区别:

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操作的函数获得。

 

android开发步骤

1.在文件AndroidManifest.xml中添加权限
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>

2.使用TelephoneManager类

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);// 获取手机imsi    String imsi = tm.getSubscriberId();   if(imsi!=null){        if(imsi.startsWith("46000") ||imsi.startsWith("46002")){        //因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号段使用了此编号        //中国移动               }else if(imsi.startsWith("46001")){        //中国联通               }else if(imsi.startsWith("46003")){         //中国电信              }      }// 获取imei   String imei = tm.getSimSerialNumber();// 获取手机号码    Stringnumber = tm.getLine1Number();

事实上,Build能向我们提供包括 硬件厂商,硬件编号,序列号等很多信息。

例如:

Build.MODEL//手机型号
Build.VERSION.SDK//SDK版本号
Build.VERSION.RELEASE//Firmware/OS 版本号



 

 

 

事实上,Build能向我们提供包括 硬件厂商,硬件编号,序列号等很多信息。

例如:

Build.MODEL//手机型号
Build.VERSION.SDK//SDK版本号
Build.VERSION.RELEASE//Firmware/OS 版本号




0 0