Android基础---获取手机硬件数据(转)

简介:

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

2、IMSI 国际移动用户识别码(IMSI:International Mobile SubscriberIdentification Number)
是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。
IMSI共有15位,其结构如下:
MCC+MNC+MSIN
MCC:Mobile Country Code,移动国家码,MCC的资源由国际电联(ITU)统一分配和管理,唯一识别移动用户所属的国家,共3位,中国为460;
MNC:Mobile Network Code,移动网络码,共2位,中国移动系统使用00、02、07,中国联通GSM系统使用01,中国电信CDMA系统使用03,一个典型的IMSI号码为460030912121001;
MSIN:Mobile Subscriber Identification Number共有10位,其结构如下:
EF+M0M1M2M3+ABCD
其中的M0M1M2M3和MDN号码中的H0H1H2H3可存在对应关系,ABCD四位为自由分配。
可以看出IMSI在NMSI号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个移动网络运营商,可以通过MNC来进行区别.

需要权限:
<uses-permission android:name= "android.permission.READ_PHONE_STATE" />
 
public  class  DeviceInfo
{
     public  static  void  getDeviceInfo(Context context)
     {
           TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
             String number = tm.getLine1Number();              //本机号码(多半不可取)
             String imei = tm.getDeviceId();                    //(设备序列号全球唯一, IMEI)
             String businessName = tm.getNetworkOperatorName(); //运营商名字
             String sim = tm.getSimSerialNumber();                //SIM卡序列号
             String imsi = tm.getSubscriberId();                   //IMSI
             String iso = tm.getNetworkCountryIso();              //设备所属国家 cn或者us 之类
             String businessId = tm.getNetworkOperator();         //运营商ID
             
             System.out.println( " number : " +number
                     + " imei " +imei
                     + " bussnessName " +businessName
                     + " sim " +sim
                     + " imsi " +imsi
                     + " iso " +iso
                     + " businessId " +businessId
                     );
     }
}

 本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/archive/2012/11/29/2795272.html如需转载请自行联系原作者


demoblog

相关文章
|
18天前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
16 1
|
4天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
13 0
|
1天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
|
1天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
|
1天前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
10 2
|
4天前
|
Java 物联网 Linux
Android硬件通信之 串口通信
Android硬件通信之 串口通信
7 0
|
4天前
|
机器学习/深度学习 数据采集 数据可视化
R语言SVM模型文本挖掘分类研究手机评论数据词云可视化
R语言SVM模型文本挖掘分类研究手机评论数据词云可视化
|
18天前
|
机器学习/深度学习 传感器 数据可视化
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
|
25天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android&#39;s AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
11 0
|
25天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
14 0