Программное обращение к службам Android с использованием компонента Telephony Manager
Автор: Макаров В.И.
Журнал: Мировая наука @science-j
Рубрика: Естественные и технические науки
Статья в выпуске: 7 (16), 2018 года.
Бесплатный доступ
В статье анализируются один из методов получения доступа к информации о звонках и смс приходящих на устройство работающее под операционной системой Android. Проводится обзор функциональных элементов определяющих функциональную составляющую любого приложения работающего под операционной системой Android. Приводится пример назначения и разрешения для функционального элемента активности в главный исполняемый файл Манифеста. Также проводится анализ работы активности и элементов «слушателей».
Анализ, разработка, события, активности, назначение активности
Короткий адрес: https://sciup.org/140263760
IDR: 140263760
Текст научной статьи Программное обращение к службам Android с использованием компонента Telephony Manager
Все клиентские приложения работающие под Android, включают в себя реализацию следующих функциональных компонентов: активность, приемники широковещательных сообщений и компоненты службы. Все они являются уникальными элементами структуры приложения, которые определяют его функциональное назначение в целом.
Вся внутренняя логика работы приложения строится вокруг компонента Активности. Активность в клиентском приложении является пользовательским экраном, реализующим интерфейс приложения[1]. Данный компонент предоставляет возможность пользователю управлять функционалом, реализованным в приложении, если такая возможность реализована разработчиком.
Активность, с точки зрения реализации, представляется классом являющимся подклассом к Activity. Чтобы данная операция (активность), реализующая функционал настройки приложения для пользователя, появилась в системе при запуске приложения, необходимо указать ее в файле манифеста. Пример назначения активности представлен следующим кодом:
android:label="@string/app_name" android:launchMode="singleInstance" >
Здесь для компонента, представляющего активность, назначаются атрибуты имени класса операции, метки (имени приложения) и режима запуска. Также в активности добавляется фильтр намерений
Обязательным пунктом при создании операции (активности) в Android-приложениях, является наличие метода onCreate(), так как система при создании операции ссылается на него по умолчанию[2].
При создании активности в метод onCreate передается в качестве параметра сохраненное состояние последнего запуска активности. Это необходимо для осуществления проверки последнего состояния объектов View. В случае обнаружения несовпадения с изначальным состоянием выставляется значение последнего сохранённого состояния из savedInstanceState.
В операционной системе Android существуют службы, которые прослушивают все события, происходящие с телефоном, и к ним может обратиться приложение, обладающее соответствующими разрешениями, назначаемые ему в файле-манифесте.
Под событиями следует понимать практически любое внешнее или внутреннее воздействие, оказываемое на устройство. Будь это событием нажатия кнопки громкости или касание экрана – устройство, на которое оказывается воздействие, в постоянном порядке поддерживает работу внутренних служб по выявлению изменений состояния устройства. Это означает, что устройство должно в обязательном порядке сохранять данную информацию, и для разработчика также существует возможность эту информацию заполучить. Для это в операционной системе Android существует класс Telephony Manager, к которому можно обратиться и получить ответ, соответствующий контексту отправляемого запроса. Данное действие можно осуществить, создав «слушателя». Слушатель – это класс, или же компонент приложения который обращается к Telephony Manager и запрашивает данные о новом соединении устройства с другим устройством, которое к нему обращается через сотовые сети.
Данный класс компонента слушателя должен наследоваться от класса широковещательных сообщений (BroadcastReceiver) и переопределять метод onReceive(). Если создана служба отправки данных о звонках и добавлен соответствующий фильтр намерений, onReceive осуществляет проверку на соответствие события пришедшего намерения (intent), и, в случае если оно не пустое, метод должен обращаться к классу TelephonyManager и проверять состояние телефона. В случае изменения состояния телефона на режим вызова метод снова должен обращаться к TelephonyManager, собирать информацию о номере вызывающего абонента и запускать следующий компонент который занимается представлением полученной информации и ее обработкой.
Список литературы Программное обращение к службам Android с использованием компонента Telephony Manager
- Официальная страница разработчиков Android [Электронный ресурс] / Android developers official site / 2018. - Режим доступа https://developer.android.com/, свободный. - Загл. с экрана.
- Зигард М., Программирование под Android [Текст] / М. Зигард, Д. Лайрд, М. Блейк, М Накамура - CПб.: Питер, 2014. - 560 с.