android 代码获取IMEI,IMSI都为空,怎么解决?
作者:百变鹏仔日期:2023-08-05 08:58:52浏览:8分类:文字大全
Android获取IMSI和IMEI :
IMSI是一个唯一的数字,标识了GSM和UMTS 网络里的唯一一个用户.?
它存储 在手机的SIM卡里,它会通过手机发送到网络上。
IMEI也是一串唯一的数字,标识了GSM 和UMTS网络里的三星 Galaxy I9100.。
它通常被打印在手机里电池下面的那一面,拨 ?*#06# 也能看到它。
代码:?
这里是你在Android里读出 唯一的 IMSI-ID?/?IMEI-ID 的方法。
Java: ?
String?myIMSI?=?
android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI
);?
//?within?my?emulator?it?returns:?310995000000000?
String?myIMEI?=?
android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_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(Context.TELEPHONY_SERVICE);//?
String?str?=?"";?
String?IMSI?=?tm.getSubscriberId();?
str?+=?"DeviceId(IMEI)?=?"?+?tm.getDeviceId()?+?"/n";
str?+=?"DeviceSoftwareVersion?=?"?+?tm.getDeviceSoftwareVersion()?
+?"/n";?
str?+=?"Line1Number?=?"?+?tm.getLine1Number()?+?"/n";
return str;
}
不可以,
国际移动用户识别码(IMSI)=MCC+MNC+MSIN
MCC是指移动国家号,我们当然都是中国了 460
MNC是移动网号,主要用来区分移动还是联通网络。
其实您只要想一下,动感地带,神州行是可以传为其它品牌的,而转为其它品牌后,国际移动用户识别码(IMSI)是不变的,所以不能通过IMSI来识别品牌
你可以通过拨10086或者去移动营业厅查询
在移动数据库中,IMSI是深层次的东西.
一般通过msisdn也就是具体的手机号码就可以查询对应的品牌,但是仍然无法通过某一个号码段来知道它是什么品牌,你只能知道,这个号码段基本都是全球通.比如说,一些老号码段是全球通.
除非你能连上移动数据库,否则是根本不可能的.
鹏仔 微信 15129739599百科狗 baikegou.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
- 上一篇:已经是第一篇了
- 下一篇:已经是最后一篇了
- 搜索