获取适用于双 SIM 卡(主要物理 SIM 卡和辅助 E-SIM 卡)Android 的 Cellinfo

Get Cellinfo for dual sim (Primary -physical sim and Secondary E-sim) Android

提问人:Akshay Chougule 提问时间:10/8/2022 更新时间:9/19/2023 访问量:195

问:

背景:如标题中所述,我使用两个模拟卡(一个物理模拟卡和一个 Esim 模拟卡)。任何一个都可以根据用户的要求成为主 SIM 卡。此外,两个模拟人生同时处于活动状态。

我的应用程序涉及从设备获取细胞信息和信号强度。 我使用 telephonyManager.getAllCellInfo() 和 telephonyManager.getSignalStrength() 来获取相关数据。但数据仅用于主要 SIM 卡。 有没有办法同时从主要和次要模拟中获取这些数据(cellinfo 和信号强度对象)?

其他研究: 使用订阅管理器,我能够同时从两个 sim 中获取一些数据,例如电话号码、MCC、MNC、运营商名称。

Android TelephonyManager 信号强度 CellInfo Multisim

评论

0赞 david dagan 12/4/2022
我正在使用 Met monster core 作为我的 flutter 应用程序中的插件。 你如何收集你的数据?

答:

1赞 Divya Mittal 9/19/2023 #1

我猜你正在使用类似的东西: context.getSystemService(Context.TELEPHONY_SERVICE) 作为 TelephonyManager? 获取 Telephony 实例。

上面返回的 TelephonyManager 将使用您尝试提取的数据的默认订阅。

根据 Android 文档: 若要调用特定订阅的 API,请使用 createForSubscriptionId(int)。 例如:telephonyManager = defaultSubTelephonyManager.createForSubscriptionId(subId);

因此,如果要获取特定订阅的 Telephony 实例,则需要知道该实例的 subscriptionId。

您可以使用 SubscriptionManager.activeSubscriptionInfoList 获取 subscriptionId 列表,并为每个 subscriptionId 创建自己的电话实例。