提问人:Akshay Chougule 提问时间:10/8/2022 更新时间:9/19/2023 访问量:195
获取适用于双 SIM 卡(主要物理 SIM 卡和辅助 E-SIM 卡)Android 的 Cellinfo
Get Cellinfo for dual sim (Primary -physical sim and Secondary E-sim) Android
问:
背景:如标题中所述,我使用两个模拟卡(一个物理模拟卡和一个 Esim 模拟卡)。任何一个都可以根据用户的要求成为主 SIM 卡。此外,两个模拟人生同时处于活动状态。
我的应用程序涉及从设备获取细胞信息和信号强度。 我使用 telephonyManager.getAllCellInfo() 和 telephonyManager.getSignalStrength() 来获取相关数据。但数据仅用于主要 SIM 卡。 有没有办法同时从主要和次要模拟中获取这些数据(cellinfo 和信号强度对象)?
其他研究: 使用订阅管理器,我能够同时从两个 sim 中获取一些数据,例如电话号码、MCC、MNC、运营商名称。
答:
我猜你正在使用类似的东西: context.getSystemService(Context.TELEPHONY_SERVICE) 作为 TelephonyManager? 获取 Telephony 实例。
上面返回的 TelephonyManager 将使用您尝试提取的数据的默认订阅。
根据 Android 文档: 若要调用特定订阅的 API,请使用 createForSubscriptionId(int)。 例如:telephonyManager = defaultSubTelephonyManager.createForSubscriptionId(subId);
因此,如果要获取特定订阅的 Telephony 实例,则需要知道该实例的 subscriptionId。
您可以使用 SubscriptionManager.activeSubscriptionInfoList 获取 subscriptionId 列表,并为每个 subscriptionId 创建自己的电话实例。
评论