Интро

Для всех нас безопасность близких людей стоит на первом месте. Вспомни ощущения, когда важный тебе человек не отвечает на звонки, а сообщения в WhatsApp остаются непрочитанными. В такие моменты мы готовы многое отдать, лишь бы получить представление о том, что же там происходит. Конечно, сотовые операторы предоставляют услуги по геолокации абонента, но информация, что «девушка находится где-то посередине» Большой Дмитровки, душу не успокаивает. Посмотрим, что мы можем с этим сделать.

WARNING

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

Ставим цели

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

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

В статье из позапрошлого номера «Повелитель ботов на Android» мы написали хорошее и полезное приложение, но у него был один недостаток: его нельзя запустить для работы в фоне и пойти заниматься своими делами. Все дело в так называемом жизненном цикле приложения (Activity lifecyсle). Советую изучить официальные материалы по теме, а пока коротко скажу так: как только система видит, что пользователь перестал работать в приложении, оно становится в очередь на выгрузку из памяти для освобождения ресурсов под другие задачи. Поэтому, если мы хотим денно и нощно следить за окружающим миром с помощью телефона, придется действовать по-другому.

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

Рис. 1. Блок-схема приложения
Рис. 1. Блок-схема приложения
 

В бой!

Начнем с конфигурационного файла. Для удобства работы будем раз в день загружать из сети XML-файл и парсить его с помощью библиотеки XMLPullParser. В данном случае мы проверяем наличие открывающихся тегов audio и photo. Естественно, этот класс позволяет и большее, поэтому проблем с созданием гибких настроек не будет. Непосредственно настройки будут храниться в SharedPreferences, их мы уже много раз использовали, рекомендую пролистать предыдущие статьи.

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


Комментарии

Подпишитесь на ][, чтобы участвовать в обсуждении

Обсуждение этой статьи доступно только нашим подписчикам. Вы можете войти в свой аккаунт или зарегистрироваться и оплатить подписку, чтобы свободно участвовать в обсуждении.

Check Also

В Google Play снова нашли малварь, объединявшую устройства в рекламный ботнет

Специалисты Symantec обнаружили в приложениях из Google Play вредоноса Sockbot, который об…