- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
获取我在 NetworkStatsManager.queryDetailsForUid
中提供的不同开始时间和结束时间这是我的代码 fragment :
我想获取开始时间和结束时间间隔内的应用程序数据使用情况我正在调用方法并以毫秒为单位传递日历中的开始日期和结束日期,但在调用 queryDetailsForUid()
之后它显示一些不同的时间:
Calendar cal1 = Calendar.getInstance();
Date end = cal1.getTime();
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -100);
long start = cal.getTime().getTime();
long s = getPackageTxBytesMobile(uid, cal.getTimeInMillis(), cal1.getTimeInMillis());
long r = getPackageRxBytesMobile(uid, cal.getTimeInMillis(), cal1.getTimeInMillis());
方法如下:
public long getPackageTxBytesMobile(int uid, long startDate, long endDate) {
NetworkStats networkStats = null;
NetworkStatsManager networkStatsManager = (NetworkStatsManager)
context1.getSystemService(Context.NETWORK_STATS_SERVICE);
TelephonyManager tm = (TelephonyManager)context1.getSystemService(Context.TELEPHONY_SERVICE);
String subId = null;
if(ActivityCompat.checkSelfPermission(context1, Manifest.permission.READ_PHONE_STATE) ==
PackageManager.PERMISSION_GRANTED) {
subId = tm.getSubscriberId();
}
Log.d("Startdate: ",""+startDate+" ");
Log.d("Enddate: ",""+endDate+" ");
try {
networkStats = networkStatsManager.queryDetailsForUid(
ConnectivityManager.TYPE_MOBILE,
subId,
startDate,
endDate ,
uid);
} catch (Exception e) {
return -1;
}
NetworkStats.Bucket bucket = new NetworkStats.Bucket();
networkStats.getNextBucket(bucket);
long tx = bucket.getTxBytes();
Log.d("tag1","StartTime: "+bucket.getStartTimeStamp());
Log.d("tag1","EndTime: "+bucket.getEndTimeStamp());
networkStats.close();
return tx;
}
这是日志输出:
2020-04-25 10:08:47.248 17889-17889/com.pkdev.mdmtemp D/tag1: StartTime: 1579168800000
2020-04-25 10:08:47.248 17889-17889/com.pkdev.mdmtemp D/tag1: EndTime: 1579176000000
2020-04-25 10:08:47.280 17889-17889/com.pkdev.mdmtemp D/Startdate:: 1579149527275
2020-04-25 10:08:47.280 17889-17889/com.pkdev.mdmtemp D/Enddate:: 1587789527275
2020-04-25 10:08:47.284 17889-17889/com.pkdev.mdmtemp D/tag1: StartTime: 1579154400000
2020-04-25 10:08:47.284 17889-17889/com.pkdev.mdmtemp D/tag1: EndTime: 1579161600000
2020-04-25 10:08:47.324 17889-17889/com.pkdev.mdmtemp D/Startdate:: 1579149527321
2020-04-25 10:08:47.324 17889-17889/com.pkdev.mdmtemp D/Enddate:: 1587789527320
2020-04-25 10:08:47.326 17889-17889/com.pkdev.mdmtemp D/tag1: StartTime: 1582466400000
2020-04-25 10:08:47.326 17889-17889/com.pkdev.mdmtemp D/tag1: EndTime: 1582473600000
2020-04-25 10:08:47.360 17889-17889/com.pkdev.mdmtemp D/Startdate:: 1579149527357
2020-04-25 10:08:47.360 17889-17889/com.pkdev.mdmtemp D/Enddate:: 1587789527357
2020-04-25 10:08:47.365 17889-17889/com.pkdev.mdmtemp D/tag1: StartTime: 1579161600000
2020-04-25 10:08:47.365 17889-17889/com.pkdev.mdmtemp D/tag1: EndTime: 1579168800000
最佳答案
您仅使用一个NetworkStats.Bucket
,请使用hasNextBucket()
也可以获得以下桶。
因此将方法的底部更改为:
long tx = 0L
NetworkStats.Bucket bucket = new NetworkStats.Bucket();
while (networkStats.hasNextBucket()) {
networkStats.getNextBucket(bucket);
tx += bucket.getTxBytes();
Log.d("tag1","StartTime: "+bucket.getStartTimeStamp());
Log.d("tag1","EndTime: "+bucket.getEndTimeStamp());
}
networkStats.close();
return tx;
关于java - 我得到了在 networkstatsmanager.querydetailsforuid() 方法中提供的不同的 startTimestamp 和 endtimestamp 。怎么解决呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61421101/
1) 我正在检查 Nougat,我已经拥有以下权限 2) 代码 fragment public long getPackageRxBytesWifi() { NetworkStat
我正在为 Android 6.0 制作一个应用程序,我想使用新类 NetworkStatsManager 来获取移动数据使用情况。 我在 list 中添加了我需要的所有权限并需要权限运行时。 当我调用
我想知道数据使用历史并注意到"new"android-6 NetworkStatsManager这似乎是积极的(我已经使用了 TrafficStats 一段时间,但这不会涵盖重启之前的任何内容)。 来
我已经编写了一段代码来获取网络使用情况,但是 queryDetailsForUid(int networkType, String subscriberId,long startTime, long
我正在将新的 NetworkStats 类与 TrafficStats 进行比较,以测量网络接口(interface)和给定应用程序 (pex Chrome) 的流量 由于 TrafficStats
我需要使用 NetworkStatsManager 为整个设备查询双 SIM 手机中两张 SIM 卡的数据使用情况,因为需要报告每张 SIM 卡 1 天的数据使用情况。因此,我需要使用方法 query
我开发了 Android 应用程序,它使用 TrafficStats API 在后台服务中获取所有已安装应用程序的数据使用统计信息。本周早些时候,在三星 Galaxy S5 上,在软件更新后,即 6.
我正在构建一个数据管理器应用,它需要通过移动和 wifi 接口(interface)报告每个应用的数据使用情况。 在尝试使用方法“NetworkStatsManager.querySummary”时,
获取我在 NetworkStatsManager.queryDetailsForUid 中提供的不同开始时间和结束时间这是我的代码 fragment : 我想获取开始时间和结束时间间隔内的应用程序数据
我编译了应用程序并通过 Google Play 将其分发给用户。我在那里集成了 Firebase Crash,现在我在控制台中看到了很多错误。 Exception java.lang.NoClassD
我是一名优秀的程序员,十分优秀!