【问题标题】:How to check if SIM is active?如何检查 SIM 卡是否处于活动状态?
【发布时间】:2019-02-22 09:55:11
【问题描述】:

我有一个用例,我需要检查设备中的 SIM 卡是否处于活动状态。在旧设备中,我可以使用 TelephonyManager 获取 SIM 状态并检查它是否为 SIM_STATE_READY。问题在于 API 22 及更高版本。

使用 SubscriptionManager,当我调用 getActiveSubscriptionInfoList 时,它会向我发送有关当前 SIM 卡的详细信息,即使我已将它们关闭。我浏览了 SubscriptionManager 的文档,但找不到类似的方法来检查 SIM 的状态。在 API 22 以上使用 TelephonyManager 仅提供有关默认 SIM 卡的信息,我想了解双 SIM 卡手机中的两个插槽。此外,我在 TelephonyManager 中发现了一个 getSimState 的重载变体,它确实接受插槽作为参数,但它是在 API 26 中引入的。我想要一个也适用于 API 22-25 的解决方案。

有没有一种方法可以让我识别出即使 SIM 卡存在于设备中,它仍处于未激活状态?

【问题讨论】:

  • stackoverflow.com/questions/3981007/…你检查过这个链接吗
  • 你查过官方doc
  • @RahulArora 该链接提到获取不同插槽的 deviceId 只会确认插槽的存在,它不会告诉我 SIM 卡是否处于活动状态。
  • @TanveerMunir 我确实在我的问题中提到了该方法,问题是它是在 API 26 中引入的。我需要适用于 API 22-25 的类似方法。
  • @HimanshuPrasad 我想你问的是 API 22 中可用的 getActiveSubscriptionInfoList,请查看 doc

标签: android


【解决方案1】:

如果设备是双卡,你可以这样检查

    SubscriptionManager sManager = (SubscriptionManager) context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
        SubscriptionInfo infoSim1 = sManager.getActiveSubscriptionInfoForSimSlotIndex(0);
        SubscriptionInfo infoSim2 = sManager.getActiveSubscriptionInfoForSimSlotIndex(1);
        int count = 0;
        if (infoSim1 != null ) {
            count++;
        }
        if (infoSim2 != null){
            count++;
        }

count 决定有多少 sims 处于活动状态。

你可以得到计数然后一个一个检查

sManager.getActiveSubscriptionInfoCount()

希望它的工作。

【讨论】:

  • 正如我所提到的,我已经尝试过了。即使您从手机设置中关闭 SIM,返回的对象也不为空。
  • 你提到你正在使用getActiveSubscriptionInfoList这个方法不是这个getActiveSubscriptionInfoForSimSlotIndex(0)根据文档它返回null如果sim没有处于活动状态。
  • getActiveSubscriptionInfoList 返回一个数组,getActiveSubscriptionInfoForSimSlotIndex 根据槽位单独返回。它们都返回了 SIM 卡的信息,该 SIM 卡存在但已关闭。
  • @HimanshuPrasad 是的,我知道,但根据文档,如果 sim 卡未激活,则返回 null。
【解决方案2】:
 TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
if (manager.getPhoneCount() == 2) {
  // Dual sim
}

Examples here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-11
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 2021-03-22
    相关资源
    最近更新 更多