【问题标题】:why getActiveSubscriptionInfoList is getting empty for some android 11 devices?为什么某些 android 11 设备的 getActiveSubscriptionInfoList 为空?
【发布时间】:2021-11-19 08:03:37
【问题描述】:

我需要确定设备 SIM 卡是否存在(包括双卡设备)。所以我尝试了订阅管理器 getActiveSubscriptionInfoList API,但对于某些 android 11 设备它返回空。

信息:

  • 插槽 1 有一张 SIM 卡
  • 插槽 2 没有 SIM 卡
  • 设备操作系统版本:Android 11
  • 设备型号名称:RMX3085realme
  • 网络提供商 Jio 预付费

【问题讨论】:

  • 你解决了吗
  • 我试过 TelephonyManager#getSimState()
  • 如果您在下面标记了在这种情况下将其作为答案的答案,它可能会对其他用户有所帮助。

标签: android telephonymanager android-subscriptionmanager


【解决方案1】:

SubscriptionManager#getActiveSubscriptionInfoList() 返回由运营商应用程序提供的订阅列表。如果没有运营商应用成功通知 Android 有可用订阅,则无论是否有 sim 卡,这都会返回空。

TelephonyManager#getSimState()(link) 是您想要使用的,如果您只想检查是否存在您所说的 SIM 卡。只要TelephonyManager#getSimState() 不返回SIM_STATE_ABSENT(link),就表示存在sim 卡。

【讨论】:

  • 既然您知道问题所在,我们如何解决运营商应用通知问题?有什么解决方案。我主要在 MIUI 设备上看到这个问题。
  • 不,除非您拥有运营商应用权限 AFAIK,否则无法使用运营商控制的 API。
  • 让我知道这是否是您所指的,例如,如何代表运营商应用提交订阅信息。如果是这样,那么是的,不可能 AFAIK。
  • 我明白这一点。有没有办法解决这个问题?
  • 根据我的理解,没有办法“修复”这个问题,因为这是预期的行为。
猜你喜欢
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 2021-12-22
相关资源
最近更新 更多