android 代码获取IMEI,IMSI都为空,怎么解决

android 代码获取IMEI,IMSI都为空,怎么解决,第1张

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;

}

手机IMEI号码是国际移动通讯设备识别号,也称手机串号。查询IMEI号方法:设置-关于手机-状态-IMEI信息。

如需查询手机真伪或出厂日期等信息,由于市场上存在山寨机、水货、克隆机等,所以无法通过IMEI号准确鉴别手机真伪。请您带好购机发票、包修卡和机器,到就近的三星服务中心咨询服务中心人员机器能否享受包修,如果能够包修的机器即为三星正品行货机器。

是国际移动用户识别码(英语:IMSI,International Mobile Subscriber Identity),是用于区分蜂窝网络中不同用户的、在所有蜂窝网络中不重复的识别码。手机将IMSI存储于一个64比特的字段发送给网络。

IMSI可以用来在归属位置寄存器(HLR,Home Location Register)或拜访位置寄存器(VLR,Visitor Location Register)中查询用户的信息。

为了避免被监听者识别并追踪特定的用户,大部分情形下手机和网络之间的通信会使用随机产生的临时移动用户识别码(TMSI,Temporary Mobile Subscriber Identity)代替IMSI。

扩展资料:

简介

国际移动用户识别码(英语:IMSI,International Mobile Subscriber Identity),是用于区分蜂窝网络中不同用户的、在所有蜂窝网络中不重复的识别码。手机将IMSI存储于一个64比特的字段发送给网络。

IMSI可以用来在归属位置寄存器(HLR,Home Location Register)或拜访位置寄存器中查询用户的信息。为了避免被监听者识别并追踪特定的用户,大部分情形下手机和网络之间的通信会使用随机产生的临时移动用户识别码。

只要一个移动网络的用户需要与其他移动网络互通,就必须使用IMSI。在GSM、UMTS和LTE网络中,IMSI来自SIM卡,在CDMA2000网络中则是直接来自手机,或者RUIM。

IMSI由一串十进制数字组成,最大长度为15位。实际使用的IMSI的长度绝大部分都是15位,短于15位的例子少见,例如,南非MTN有一些仍在网络中使用的较旧的IMSI为14位数字。

IMSI由移动国家代码(MCC,Mobile Country Code)、移动网络代码(MNC,Mobile Network Code)和移动订户识别代码依次连接而成。MCC长度为3位,MNC长度由MCC的值决定,可以是2位,MSIN的值由运营商自行分配。

参考资料来源:百度百科-国际移动用户识别码

1,进入手机,设置--通用--关于本机--下拉会看到imei码;

2,可以开机后,拨号状态,打开拨号键盘,在拨号界面按 *#06#,手机屏幕上显示15个数字,这就是本手机的IMEI码。

进入苹果官网,首页选择“技术支持”,点击“提供序列号”,输入IMEI号即可显示保修有效时间。

IMSI:International Mobile Subscriber Identification Number,意思是国际移动用户识别码,是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,使用0~9的数字。

IMEI:International Mobile Equipment Identity,是移动设备国际识别码,又称为国际移动设备标识,是手机的唯一识别号码。IMEI俗称“手机串号”,存储在手机的EEPROM(俗称“码片”)里。

1、首先点击打开手机拨号键。

2、然后输入##4636##

3、输入之后就会自动跳到测试页面。

4、大多手机是双卡,所以会有手机信息1和2两个选项,现在点击打开一个手机信息。

5、手机里有一个卡槽没放SIM卡的话打开手机信息是什么都没有的。

6、最后就可以看到手机sim卡的IMSI(国际移动用户识别码)了。

getSimSerialNumber()是获取IMEI的

getSubscriberId()才是获取IMSI的

MTK的是getSubscriberIdGemini(int simId)

对应的getSimSerialNumberGemini(int simId)

高通平台有单独的类MSimTelephonyManager里面有方法

getSubscriberId(int simId)

getSimSerialNumber(int simId)

高通平台接口不太确定各个厂商是否都是这样据说之前高通双卡方案代码是外包的,可能不太一样

simId 0应该是主卡 1是次卡

要用反射掉,不是原生接口

以上就是关于android 代码获取IMEI,IMSI都为空,怎么解决全部的内容,包括:android 代码获取IMEI,IMSI都为空,怎么解决、手机imsi号手机imsi号怎么查、IMSI是什么东西等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10146114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存