Метод querySummary () NetworkStatsManager всегда возвращает данные об использовании старой сети для всех приложений - android (java)
Я использую источник https://github.com/zhaobao/AppsMonitor для отображения использования данных в мобильном приложении.
NetworkStatsManager's querySummary()
метод всегда возвращает старое использование сети для всех приложений
но этот метод возвращает ежедневное использование данных в api 24 и выше, но в api 23 не показывает ежедневное использование данных. это мой код:
Map<String, Long> result = new HashMap<>();
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
long[] range = AppUtil.getTimeRange(SortEnum.getSortEnum(offset));
NetworkStats networkStatsM;
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
networkStatsM = nsm.querySummary(ConnectivityManager.TYPE_MOBILE, tm.getSubscriberId(), range[1],range[1] );
if (networkStatsM != null) {
while (networkStatsM.hasNextBucket()) {
NetworkStats.Bucket bucket = new NetworkStats.Bucket();
networkStatsM.getNextBucket(bucket);
String key = "u" + bucket.getUid();
// Log.d("range", key+"(" +range[0]+"-"+range[1]+")" +" " + bucket.getTxBytes() + " =" + bucket.getStartTimeStamp()+ " =" +bucket.getEndTimeStamp());
if (result.containsKey(key)) {
result.put(key, result.get(key) + bucket.getTxBytes() + bucket.getRxBytes());
} else {
result.put(key, bucket.getTxBytes() + bucket.getRxBytes());
}
}
}
}
} catch (RemoteException e) {
e.printStackTrace();
Log.e(">>>>>", e.getMessage());
}
}
return result;
}
кто-нибудь может мне помочь с этим? Благодарность!