TrafficStats.getUidRxBytes вернуть -1 - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь получить общее количество байтов Tx и Tr для установленных приложений, но всегда возвращает -1, кроме моего приложения. Это мой код:

val pm = context.packageManager
val apps = HashMap<String, Long>()
    for( app in pm.getInstalledApplications(0) ) {
        Log.i(TAG, "app.packageName=${app.packageName} TrafficStats.getUidTxBytes(app.uid)=${TrafficStats.getUidTxBytes(app.uid)} TrafficStats.getUidRxBytes(app.uid)=${TrafficStats.getUidRxBytes(app.uid)}")
        apps.put(app.packageName, TrafficStats.getUidRxBytes(app.uid)+TrafficStats.getUidTxBytes(app.uid))
    }

1 Ответ

0 голосов
/ 30 октября 2018

Согласно документации:

Начиная с Build.VERSION_CODES.N это будет только сообщать статистику трафика для вызывающего UID. Он вернет UNSUPPORTED для всех других UID по соображениям конфиденциальности. Для доступа к исторической статистике сети, принадлежащей другим UID, используйте NetworkStatsManager.

При получении значений, которые вы не ожидаете, всегда сначала проверяйте самую свежую документацию.

...