Как добиться использования данных 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