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