Telephony 网络数据数据统计
1、前提条件
对于网络数据流量统计,之前很少出现问题,因此也一直没有关注相关方面的代码。试用过程中,发生相关流量统计不刷新的情况,需要分析,大概了解了一下,记录如下
2、APP如何统计流量
与相关APP同事沟通确认,统计当天的流量接口如下,需要调用NetworkStatsManager中的相关接口,对于SIM卡流量需要传入subid和对应的时间戳。
NetworkStatsManager networkStatsManager = (NetworkStatsManager) getSystemService(Context.NETWORK_STATS_SERVICE);int subid = SubscriptionManager.from(this).getDefaultDataSubscriptionId();// 获取当天起始时间(00:00)Calendar calendar = Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);long startTime = calendar.getTimeInMillis();// 查询移动数据流量(需订阅ID)NetworkStats.Bucket bucket = networkStatsManager.querySummaryForDevice(NetworkTemplate.buildTemplateMobileAll(subid),startTime,startTime + 24 * 60 * 60 * 1000);
3、如何定位相关问题
1、需要抓取net log

1、MTK平台离线日志默认支持
2、也可以使用adb shell dumpsys netstats > netstats.txt抓取
2、Log相关介绍
1、时间戳,默认0为1970年1月1号8点,网络上有很多在线转化工具
时间戳转换工具(Unix timestamp) - 在线工具
打开Log可以看到st时间戳为一个长整形数,该数表示相关开始时间,如1747404000,需要转化为对应的时间日期。
如1747404000表示该条目为2025-05-16 22:00:00开始流量使用情况。
2、其他参数,rb 接收到的数据,tp 发出的数据