如何使用Lollipop MR1多SIM支持(通过SubscriptionManager)获取所有SIM卡的IMEI?

时间:2015-08-06 16:12:06

标签: android android-5.1.1-lollipop dual-sim

对于Lollipop MR1 announcedSubscriptionManager及其SubscriptionInfo提供了有关所有(有效)SIM的大量信息,但我错过了他们的IMEI。

我得到有关此类SIM卡的信息:

    SubscriptionManager sm = SubscriptionManager.from(context);

    List<SubscriptionInfo> sil = sm.getActiveSubscriptionInfoList();
    if (sil != null) {
      for (SubscriptionInfo subInfo : sil) {
        Log.d(TAG, "SubInfo:" + subInfo);
      }
    } else {
      Log.d(TAG, "SubInfo: list is null");
    }

我是否遗漏了某些内容,或者我们仍然只能通过telephonyManager.getDeviceId()获取IMEI(仅限第一张SIM卡)?

2 个答案:

答案 0 :(得分:2)

方法

public String getDeviceId(int slotId)

在API 23中的TelephonyManager下可用。slotId只是从0到SIM数量的数字 - 1.

在API 22中,存在相同的方法但隐藏了。你需要使用反射来调用它。

答案 1 :(得分:0)

IMEI用于识别设备,而非SIM卡。因此,您只能通过telephonyManager.getDeviceId()获取IMEI。

更新:事实证明我错了,设备可以为每张SIM卡配备IMEI。我在StackOverflow中找到了这个可以帮助你的答案。

Android : Check whether the phone is dual SIM