андроид wifi активная передача данных - PullRequest
3 голосов
/ 06 февраля 2012

Использование Android TelephonyManager приложение может получать данные о состоянии активности данных в сотовой сети. Например, активность входит, выходит или и то, и другое. Мне интересно, если кто-нибудь знает способ получить ту же информацию, когда устройство подключено с помощью Wi-Fi? В Ice Cream Sandwich (4.0.3, я думаю) эта информация доступна как для Wifi, так и для телефона, но до этого она была только для телефона (WifiManager не обновлялся с этой информацией до выхода Ice Cream Sandwich).

В принципе, я хочу иметь возможность проверить, активно ли данные передаются телефоном / планшетом при подключении к сети Wi-Fi (а не только о том, что Wi-Fi подключен). Эти данные не должны быть инициированы мной; Я просто хочу знать, активно ли перемещаются данные.

У кого-нибудь есть идеи, как этого достичь? Я довольно новичок в Android и хотел бы, чтобы эта информация убедилась, что мое приложение не делает ничего плохого. Заранее спасибо за любые мысли.

1 Ответ

1 голос
/ 06 февраля 2012

Я тоже искал это, и у меня нет идеального ответа, но вы можете получить некоторые приблизительные данные, используя TrafficStats API.

У меня есть фрагмент кода, который иногда запускается таймером и парой переменных класса, называемых totalDownload и totalUpload ...

long newTotalDownload = TrafficStats.getTotalTxBytes();
long newTotalUpload = TrafficStats.getTotalRxBytes();

long incDownload = newTotalDownload - totalDownload;
long incUpload = newTotalUpload - totalUpload;

if (incUpload > 0)
{
    //data was being uploaded in the last time period
}
if (incDownload > 0)
{
    //data was being downloaded in the last time period
}
//set up for the next iteration
totalDownload = newTotalDownload;
totalUpload = newTotalUpload;

это работает, хотя я бы хотел получить лучший ответ, если вы найдете такой.

...