Как использовать networkStatsManager
Я не совсем понимаю, как это работает networkStatsManager, я читал здесь документы и вопросы, но до сих пор не понимаю. То, что я пытаюсь сделать, это топ-10 приложений, которые потребляют больше данных, с TrafficStats я сделал что-то вроде этого:
final PackageManager pm = parentActivity.getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(0);
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
for (ApplicationInfo packageInfo : packages) {
UID = packageInfo.uid;
String package_name = packageInfo.packageName;
ApplicationInfo app = null;
try {
app = pm.getApplicationInfo(package_name, 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
String name = (String) pm.getApplicationLabel(app);
double received = (double) TrafficStats.getUidRxBytes(UID) / (1024 * 1024);
double send = (double) TrafficStats.getUidTxBytes(UID) / (1024 * 1024);
double total = received + send;
new DecimalFormat("#.##").format(total);
if (total > 0) {
ConsultaMB consulta = new ConsultaMB();
consulta.setName(name);
consulta.setPackage(package_name);
consulta.setData(Math.floor(total * 100) / 100);
lista.add(consulta);
}
}
Как мне сделать это с networkStatsManager (мне это нужно для Android M и вперед)