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