2016-11-28 14 views
0

Я пытаюсь измерить количество пакетов, отправляемых и полученных по WiFi только на Android Nougat. К сожалению, похоже, что они удален доступ к «/ SYS/класс/сети/wlan0/статистик/*» в Нуга согласно этой дискуссии:Измерение пакетов WiFi только в Android Nougat

https://code.google.com/p/android/issues/detail?id=208172

Ищет способы измерения WiFi пакетов всегда приводит меня обратно для этого ответа (или аналогичный):

Get wifi traffic stats android

То есть, чтобы прочитать "/ SYS/класс/нетто/wlan0/статистика/*" (rx_bytes, tx_bytes и т.д.)

Когда я пытаюсь читать их, AndroidSt udio показывает, что приложение не может прочитать эти файлы, поскольку разрешение отклонено.

Я просмотрел TrafficStats, но, похоже, нет способа отделить статистику WiFi от всех сетевых характеристик. Кто-нибудь знает способ измерения только WiFi-пакетов?

(Для фона я пытаюсь обновить приложение PowerTutor работать с моим Nexus 6р, который я обновленный до Нуга Исходный код Я отработкой находится здесь:. https://github.com/msg555/PowerTutor)

ответ

0

После некоторого тестирования кажется, что класс TrafficStats отлично работает для моих целей.

Вот что я в конечном итоге делает, и он работает, чтобы получить данные только WiFi на Nexus 6р с Android 7.0:

long transmitPackets = TrafficStats.getTotalTxPackets() - TrafficStats.getMobileTxPackets(); 
long receivePackets = TrafficStats.getTotalRxPackets() - TrafficStats.getMobileRxPackets(); 
long transmitBytes = TrafficStats.getTotalTxBytes() - TrafficStats.getMobileTxBytes(); 
long receiveBytes = TrafficStats.getTotalRxBytes() - TrafficStats.getMobileRxBytes(); 

Я проверил это путем проверки вывода с Wi-Fi и выключается, и это показывает, без энергопотребления с отключенным WiFi (как и предполагалось). Для хорошей оценки я транслировал видео с YouTube с включенным WiFi и один раз, когда только мобильные данные были включены, чтобы подтвердить, что использование TrafficStats работает правильно.

 Смежные вопросы

  • Нет связанных вопросов^_^