IMSI是相对手机卡而言的,不是手机,手机对应的是IMEI。
如果你是想查询手机的IMEI的话,可以有以下几种途径:
购买手机时,盒子里一般会贴有IMEI的序列号;
在手机的设置里,找到关于手机,里面包含了手机IMEI等信息;
打开手机的拨号界面,输入#06#,即可出现手机的IMEI。
Android获取IMSI和IMEI :
IMSI是一个唯一的数字,标识了GSM和UMTS 网络里的唯一一个用户
它存储 在手机的SIM卡里,它会通过手机发送到网络上。
IMEI也是一串唯一的数字,标识了GSM 和UMTS网络里的三星 Galaxy I9100。
它通常被打印在手机里电池下面的那一面,拨 #06# 也能看到它。
代码:
这里是你在Android里读出 唯一的 IMSI-ID / IMEI-ID 的方法。
Java:
String myIMSI =
androidosSystemPropertiesget(androidtelephonyTelephonyPropertiesPROPERTY_IMSI
);
// within my emulator it returns: 310995000000000
String myIMEI =
androidosSystemPropertiesget(androidtelephonyTelephonyPropertiesPROPERTY_IMEI
);
// within my emulator it returns: 000000000000000
手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手
机号码的数据写入到sim卡中。sim卡只有唯一的编号,供网络与设备识别那就是imsi号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。
试想,你的sim丢失后,补办一张新的会换号码吗 —不会就是因为在你的手机号码对应的 imsi号在移动运营商中被修改成新sim卡的imsi号码。
这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。
/ 获得手机的一些标志符 @param c @return String 手机的类型 /
public String fetch_status(Context c) {
TelephonyManager tm = (TelephonyManager) c
getSystemService(ContextTELEPHONY_SERVICE);//
String str = "";
String IMSI = tmgetSubscriberId();
str += "DeviceId(IMEI) = " + tmgetDeviceId() + "/n";
str += "DeviceSoftwareVersion = " + tmgetDeviceSoftwareVersion()
+ "/n";
str += "Line1Number = " + tmgetLine1Number() + "/n";
return str;
}
IMSI码与IMEI码都是15位数
IMSI是手机卡IMSI码(国际移动识别码)每张手机卡IMSI码都不相同
可网上营业厅或当地营业厅查询
IMEI码(国际移动设备标识)是手机设备IMEI码
输入#06#
是IMEI码
android 获取sim卡运营商信息
TelephonyManager tm = (TelephonyManager)ContextgetSystemService(ContextTELEPHONY_SERVICE); TelephonyManager 的使用 TelephonyManager 提供设备上获取通讯服务信息的入口,应用程序使用这个类的方法来获取电话的服务商或者状态。程序也可以注册一个监听器来监听电话状态的改变。 不需要直接实例化这个类,使用ContextgetSystemService(ContextTELEPHONY_SERVICE)来获取这个类的实例。
注意:一些电话信息需要相应的权限。 方法无效
getSimOperatorName() Returns the Service Provider Name (SPN) // 获取服务提供商名字,比如电信,联通,移动 用下面的方法 第一种方法: 获取手机的IMSI码,并判断是中国移动/中国联通/中国电信
TelephonyManager telManager = (TelephonyManager) getSystemService(ContextTELEPHONY_SERVICE);
/ 获取SIM卡的IMSI码 SIM卡唯一标识:IMSI 国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志, 储存在SIM卡中,可用于区别移动用户的有效信息。
IMSI由MCC、MNC、MSIN组成,其中MCC为移动国家号码,由3位数字组成, 唯一地识别移动客户所属的国家,我国为460;MNC为网络id,由2位数字组成, 用于识别移动客户所归属的移动网络,中国移动为00,中国联通为01,中国电信为03;
MSIN为移动客户识别码,采用等长11位数字构成。
唯一地识别国内GSM移动通信网中移动客户。所以要区分是移动还是联通,只需取得SIM卡中的MNC字段即可 /
String imsi = telManagergetSubscriberId();
if(imsi!=null){ if(imsistartsWith(“46000″) || imsistartsWith(“46002″))
{//因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号段使用了此编号 //中国移动
}else if(imsistartsWith(“46001″)){
//中国联通
}else if(imsistartsWith(“46003″)){
//中国电信
} }
第二种方法 TelephonyManager telManager = (TelephonyManager) getSystemService(ContextTELEPHONY_SERVICE); String operator = telManagergetSimOperator();
if(operator!=null){ if(operatorequals(“46000″) || operatorequals(“46002″)|| operatorequals(“46007″)){
//中国移动
}else if(operatorequals(“46001″)){
//中国联通
}else if(operatorequals(“46003″)){
//中国电信
} }
在文件AndroidManifestxml中添加权限 其他方法具体使用方法请查看API 文档TelephonyManager中方法说明。
在文件 AndroidManifestxml 中添加权限 <uses-permission android:name="androidpermissionREAD_PHONE_STATE"/>
TelephonyManager tel = (TelephonyManager) context getSystemService(ContextTELEPHONY_SERVICE);
String simOperator = telgetSimOperator();
IMSI共有15位,其结构如下: MCC+MNC+MIN MCC:Mobile Country Code,移动国家码,共3位,中国为460; MNC:Mobile Network Code,移动网络码,共2位,电信03,移动02,联通GSM 01,一个典型的IMSI号码为460030912121001; MIN共有10位,其结构如下: 09+M0M1M2M3+ABCD 其中的M0M1M2M3和MDN号码中的H0H1H2H3可存在对应关系,ABCD四位为自由分配。 可以看出IMSI在MIN号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个CDMA运营商,可以通过MNC来进行区别
功能 说明
getCellLocation() 返回的单元格位置的装置 ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION
getDeviceId() 返回的IMEI / MEID的设备。 如果该设备是GSM设备 然后IMEI号将被退回,如果该设备是一个CDMA设备然后MEID 将被退回 READ_PHONE_STATE
getLine1Number() 返回设备的电话号码(MSISDN号码) READ_PHONE_STATE
getNetworkOperatorName() 返回注册的网络运营商的名字
getNetworkOperator() 返回的MCC +跨国公司的注册网络运营商
getNetworkCountryIso() 返回注册的网络运营商的国家代码
getSimCountryIso() 返回SIM卡运营商的国家代码 READ_PHONE_STATE
getSimOperator() 返回SIM卡运营商的单个核细胞数+冶 READ_PHONE_STATE
getSimOperatorName() 返回SIM卡运营商的名字 READ_PHONE_STATE
getSimSerialNumber() 返回SIM卡的序列号 READ_PHONE_STATE
getNetworkType() 返回网络设备可用的类型。 这将是 下列其中一个值:
TelephonyManagerNETWORK_TYPE_UNKNOWN TelephonyManagerNETWORK_TYPE_GPRS TelephonyManagerNETWORK_TYPE_EDGE TelephonyManagerNETWORK_TYPE_UMTS READ_PHONE_STATE getPhoneType() 返回设备的类型。 这将是以下值之一: TelephonyManagerPHONE_TYPE_NONE TelephonyManagerPHONE_TYPE_GSM TelephonyManagerPHONE_TYPE_CDMA READ_PHONE_STATE getSubscriberId() 返回用户识别码(的IMSI)的设备 READ_PHONE_STATE
getNeighboringCellInfo() 返回NeighboringCellInfo类代表名单 相邻小区的信息,如果可用,否则将 返回null ACCESS_COARSE_UPDATES
IMSI的全称是International Mobile Subscriber Identification Number,也就是客户识别码。
当你的手机开机后在接入网络的过程中有一个注册登记的过程,会被分配一个客户号码(客户电话号码)和客户识别码(IMSI)客户请求接入网络时,系统通过控制信道将经加密算法后的参数组传送给客户,手机中的SIM卡收到参数后,与SIM卡存储的客户鉴权参数经同样算法后对比,结果相同就允许接入,否则为非法客户。
以上就是关于如何查看苹果手机的IMSI全部的内容,包括:如何查看苹果手机的IMSI、android 代码获取IMEI,IMSI都为空,怎么解决、怎么知道我手机的imsi码是多少等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)