如何从双卡手机获取两个 IMEI 号码?

Posted

技术标签:

【中文标题】如何从双卡手机获取两个 IMEI 号码?【英文标题】:How can I get both IMEI numbers from dual SIM mobile? 【发布时间】:2012-08-06 12:41:41 【问题描述】:

谁能帮我解决这个问题。

【问题讨论】:

IMEI 是为设备定义的,而不是为 SIM 卡定义的!所以你的问题没有意义。参见维基:en.wikipedia.org/wiki/International_Mobile_Equipment_Identity 请您检查一下双卡手机。每个 SIM 卡插槽都有一个唯一的 IMEI 号码。我刚才检查了。 双 SIM 卡手机非常罕见,但我相信您和我都对每个 SIM 卡插槽都有自己的 IMEI 感到惊讶。无论如何,我看不到在 android 中处理两个 SIM 卡的公共 API,因此您可能必须找到一些特定于设备的库。 ***.com/questions/5255147/dual-sim-card-android @Marek R... 现在我用屏幕截图更新了问题。 可以在双 SIM 卡设备的情况下获得 2 个不同的 IMEI。请参考Pied Piper this answer,以获得双 SIM 卡手机的 2 种不同 IMEI。 【参考方案1】:

你可以试试下面的代码,它会对你有所帮助。

TelephonyManager manager= (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
try 
    Class<?> telephonyClass = Class.forName(manager.getClass().getName());
    Class<?>[] parameter = new Class[1];
    parameter[0] = int.class;
    Method getFirstMethod = telephonyClass.getMethod("getDeviceId", parameter);
    Log.d("SimData", getFirstMethod.toString());
    Object[] obParameter = new Object[1];
    obParameter[0] = 0;
    String first = (String) getFirstMethod.invoke(manager, obParameter);
    Log.d("IMEI ", "first :" + first);
    obParameter[0] = 1;
    String second = (String) getFirstMethod.invoke(manager, obParameter);
    Log.d("IMEI ", "Second :" + second);
 catch (Exception e) 
    e.printStackTrace();

并在清单上添加权限。

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>  

【讨论】:

【参考方案2】:

有关 SIM #2(或任何其他默认 SIM)的信息完全取决于制造商。 Android 不提供用于多 SIM 卡设施的 API。 Android api 仅支持默认 SIM 卡插槽。您可以联系 Micromax(设备制造商),如果他可以为您提供 api 来支持他的硬件组件。

【讨论】:

以上是关于如何从双卡手机获取两个 IMEI 号码?的主要内容,如果未能解决你的问题,请参考以下文章

android开发中想获取双卡手机号码,两个号码的怎样获取?

android怎么获取当前手机号码。双卡双待的手机怎么去处理?

如何查看双卡手机的本机号码?

如何处理2电话权限以获取设备的IMEI号码和手机号码?

Android 设备唯一标识

如何判断手机的IMEI号