Как написать сервис для отслеживания использования данных GPRS на устройстве Android

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

Я читал о классе TrafficStats в Android, но он будет проверяться только один раз, когда начнется активность. Мне нужен непрерывный фоновый процесс.

Я даже нашел пример проекта - https://github.com/commonsguy/cw-andtuning/tree/master/TrafficMonitor

как упоминалось в посте - Как измерить использование данных моего приложения

Заранее спасибо.

1 ответ

Решение

Вам нужно сделать следующее:

  • Создайте локальную базу данных, в которой будут храниться значения использования данных.

  • Запустите службу, которая работает непрерывно / периодически, чтобы рассчитать / пересчитать использование данных.

  • После расчета использования данных службой добавьте данные в таблицу использования данных.

Чтобы создать локальную базу данных, вы можете обратиться к этому руководству по SQLite

Вот как вы можете запустить сервис Создание сервиса в Android

РЕДАКТИРОВАТЬ

Невозможно получить уведомление, если используется какое-либо свежее использование данных. Вам придется периодически проверять его с помощью службы, которая будет работать непрерывно или периодически.

Вы можете использовать следующий код для расчета использования:

int UID=Process.myUid();
long recived = TrafficStats.getUidRxBytes(UID);
long send = TrafficStats.getUidTxBytes(UID);

Другие функции, которые вы можете использовать в зависимости от ваших требований:

long initialRX = TrafficStats.getTotalRxBytes();// recieved
long initialTx = TrafficStats.getTotalTxBytes();// sent
long initialMobRX = TrafficStats.getMobileRxBytes();
long initialMobTx = TrafficStats.getMobileTxBytes();

Помните, что TrafficStats возвращает кумулятивное значение. Поэтому вам нужно вычесть значение initail, чтобы узнать величину приращения в использовании

Также счетчик TrafficStats сбрасывается всякий раз, когда процесс завершается. Например, когда телефон выключен. Следовательно, вам придется добавить код для обработки.

Ссылка по теме:
TrafficStats Api android и расчет ежедневного использования данных

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