首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单独使用NetworkStatsManager查询两个sim的数据使用情况

单独使用NetworkStatsManager查询两个sim的数据使用情况
EN

Stack Overflow用户
提问于 2018-10-01 15:29:03
回答 1查看 321关注 0票数 1

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-09 12:26:20

代码语言:javascript
复制
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.

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

代码语言:javascript
复制
Class<?> c = Class.forName("android.telephony.TelephonyManager");
Method m = c.getMethod("getSubscriberId", int.class);
Object o = m.invoke(telephonyManagerInstance, id);
subscriberId = (String) o;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52594334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档