Как добиться использования данных Tethering и Mobile Hotspot в Android с помощью NetworkStatusManager или TrafficStat

У меня есть приложение для Android, в котором NetworkStatusManager отображает данные об использовании каждого приложения, но я не могу получить данные об использовании для Tethering и Mobile Hotspot. Как мне это сделать?

2 ответа

Решение

Вам нужно сделать запрос по UID и передать UID: android.app.usage.NetworkStats.Bucket.UID_TETHERING вот так:

networkStatsManager.queryDetailsForUid(ConnectivityManager.TYPE_MOBILE,
    subscriberId, startDate, endDate, 
    android.app.usage.NetworkStats.Bucket.UID_TETHERING);

Что я сделал, так это получил данные из этих файлов

/sys/class/net/<интерфейс>/statistics/tx_bytes

/sys/class/net/<интерфейс>/statistics/tr_bytes

затем я сохранил значения, используя sharedpreference y, также сделал некоторый код для получения только новых значений и добавил их к сохраненным значениям.

Я провел много исследований, но queryDetailsForUid с использованием UID_TETHERING никогда не работал.

интерфейсы wlan и wwan

Другие вопросы по тегам