gpt4 book ai didi

android - 使用 NetworkStatsManager 分别查询两个 sim 的数据使用情况

转载 作者:行者123 更新时间:2023-11-29 23:31:28 33 4
gpt4 key购买 nike

我需要使用 NetworkStatsManager 为整个设备查询双 SIM 手机中两张 SIM 卡的数据使用情况,因为需要报告每张 SIM 卡 1 天的数据使用情况。因此,我需要使用方法 querySummaryForDevice()。我需要传递订阅 ID,我认为每个 sim 卡都应该不同。我尝试使用此处提到的订阅管理器解决方案:Android: How to get SIM-ID of both SIMs in Android?不知何故,从这里获取订阅 ID 返回 0 字节作为使用的数据。截至目前,我正在使用 TelephonyManager 获取订阅 ID。

最佳答案

SubscriptionManager subscriptionManager = (SubscriptionManager) ControlApplication.getControlApplicationContext().getSystemService(
Context.TELEPHONY_SUBSCRIPTION_SERVICE);
List<SubscriptionInfo> subInfoList = subscriptionManager.getActiveSubscriptionInfoList();
int id = subInfoList.get(i). getSubscriptionId();

//Here, i is index in the list.

现在使用反射调用 TelephonyManager 类中的 getSubscriberId(int) 方法,其中的值在上述步骤中获得。此方法的返回值将需要 sim 卡的订阅者 ID,可以在 querySummaryForDevice() 方法中使用它来获取该 sim 卡的数据使用情况。使用反射的代码:

Class<?> c = Class.forName("android.telephony.TelephonyManager");
Method m = c.getMethod("getSubscriberId", int.class);
Object o = m.invoke(telephonyManagerInstance, id);
subscriberId = (String) o;

关于android - 使用 NetworkStatsManager 分别查询两个 sim 的数据使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52594334/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com