2011-11-10 28 views
9

Próbuję napisać aplikację monitorującą ruch sieciowy samodzielnie. Korzystam z TrafficStat, aby uzyskać statystykę ruchu sieciowego dla danej aplikacji. Ale w przypadku aplikacji wideo, takich jak YouTube, przesyłane dane nie mogą być przechwytywane przez TrafficStat. Zamiast tego przesyłane dane są przechwytywane w "android.process.media". Czasami jest on przechwytywany przez cały API ruchu sieciowego w TrafficStat zamiast na API aplikacji. Jeśli istnieje tylko jedna aplikacja wideo, powiedzmy YouTube, zawsze mogę przypisać wykorzystanie danych przechwycone przez stronę "android.process.media" z powrotem do YouTube. Ale niektórzy ludzie mają wiele różnych aplikacji wideo w telefonie i te aplikacje zwykle używają tej samej metody do strumieniowego przesyłania wideo. Dlatego nie mogę rozróżnić, ile danych zużywa każda aplikacja wideo.Jak uzyskać statystyki ruchu sieciowego dla aplikacji do strumieniowego przesyłania wideo w systemie Android?

Z rynku Android znalazłem My Data Manager, która wydaje się poprawnie rejestrować użycie danych aplikacji wideo. Zakładam więc, że musi być na to sposób. Ale spędziłem dużo czasu na poszukiwaniu rozwiązań. Jeszcze nie udało się. Czy ktoś wie, jak to zrobić?

===== Aktualizacja 02/05/2014 ====

zdarzyło mi się rozmawiać z facetem, który implementuje Android TrafficStat w przypadku Google. Powiedział mi, że wcześniejsze wersje (Gingerbread i Eariler) TrafficStat są błędne. Nowe w ICS lub później powinny być poprawne. Nie testowałem nowych wersji. Dlatego używaj go z rozwagą.

+0

nie mam pojęcia, jak oni wyciągnąć że off. 'android.process.media' to proces, który wykonuje transfer sieciowy dla mediów strumieniowych AFAIK. Nawet NetStat (na jedną odpowiedź) powinien wskazywać palcem na 'android.process.media'. To samo dotyczy innych scentralizowanych usług sieciowych, takich jak 'DownloadManager'. – CommonsWare

+0

Myślę, że nie ma mowy. Ale czekam, aż inni odpowiedzą. – landry

Odpowiedz