1

正如Lollipop MR1所宣布的那样, SubscriptionManager及其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");
    }

我是否遗漏了什么,或者我们仍然只能通过 IMEI(仅第一张 SIM 卡)获得telephonyManager.getDeviceId()

4

2 回答 2

2

方法

public String getDeviceId(int slotId)

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

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

于 2015-10-07T13:16:50.683 回答
0

IMEI用于识别设备,而不是 SIM。所以是的,您只能通过 IMEI 获取 IMEI telephonyManager.getDeviceId()

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

Android : 检查手机是否为双卡

于 2015-08-06T16:46:49.140 回答