[英]Is it possible to get different IMEI in android dual SIM device using getDeviceId
我正在使用双SIM卡手机,在拨打*#06#
,得到了两个IMEI号码(IMEI1 = ***973 & IMEI2 = ***980)
。
当尝试使用telePhonyManager.getDeviceId()
,我总是得到***973(IMEI1)
。
TelephonyManager mngr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
textView.append("IMEI Number: " + mngr.getDeviceId());
在我的应用程序中,我将使用IMEI编号作为用户的唯一参考。
在搜索相关内容时,一些站点发布了getDeviceId()
可能返回***980(IMEI2)
。 我的问题是,将来是否有可能getDeviceId()
方法返回***980(IMEI2)?
简短的回答你的问题是NO,有写代码,将取回的双SIM卡手机的IMEI两个数字没有万无一失的方法。 官方的AOSP仅支持单SIM卡使用,并且所有具有双SIM卡功能的设备的OS源代码均已由电话制造商修改。
如果一部手机的两个插槽中都有两个SIM卡,则默认情况下将检索第一个插槽的IMEI号码;如果一部手机中的两个插槽中只有一个SIM卡,则将占用一个插槽的IMEI编号(第一个或第二个)默认情况下被检索。 这是我在Micromax
和HTC
手机上观察到的行为,但我怀疑这也取决于实现。
我建议您编写代码,使其不依赖于多个SIM卡。 最好不要将手机的IMEI号码用于任何用途,因为在将来的Android版本中可能会删除该号码。 iOS已经阻止开发人员访问IMEI号码。
在SO上有一篇文章,作者使用了一种非常创新的技术(即反射)来获得在双SIM卡手机上获取第二个IMEI号码的方法的名称 。 非常有趣,但是几乎不可能在生产代码中使用。
使用API级别23,Android启用了getDeviceId(slotIndex)来为双卡手机获取不同的IMEI / MEID。 要获取插槽数,请调用getPhoneCount() 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.