- Android: Обработка СМС
- 0. Вместо вступления
- 1. Перехватываем СМС
- 2. Обрабатываем СМС
- Как сделать бэкап СМС-сообщений на Android
- Как создавать резервные копии SMS-сообщений при помощи Google Диска
- Как автоматически создавать резервные копии ваших SMS-сообщений с помощью стороннего приложения
- Резервное копирование SMS с Android на ПК
- Способ 1: SMS Backup & Restore
- Способ 2: Приложение-компаньон для ПК
- Универсальная программа
- Фирменное приложение
Android: Обработка СМС
0. Вместо вступления
Периодически (когда у меня выпадает свободный вечер, и наш «клуб» организует игру) я играю в регбол. «Клуб» организован таким образом, что в день игры всем участникам приходит СМС такого вида:
Регбол! Сегодня в 19-30. Двор школы №30: ул. Володарского, 20. Открытая площадка с резиновым покрытием. Тел. 8 (951) ***-**-**.
И вот я подумал — почему бы не написать небольшое приложение, которое будет отлавливать эти сообщения, и забивать их в гугл-календарь. Зачем? Да, в основном, just for fun, ибо я не настолько занятой человек, чтобы мне были жизненно необходимы автоматические секретари.
Итак, приложение будет уметь следующее:
- Следить за входящими сообщениями. Если пришло сообщение от адресата RM FIGHT, то нужно сверить текст сообщения с шаблоном, и при совпадении создать мероприятие в гугл-календаре. Если же текст сообщения с шаблоном не совпадает (например, просто какие-то новости пришли), то сохраняем сообщение в базе, чтобы потом можно было его прочитать.
- Показывать сообщения от этого адресата, не попадающие в категорию «Оповещение об игре» (новости, реклама и т.д.).
В рамках статьи я полагаю, что у читателя есть базовые знания — как создать проект, что такое файл Manifest, и с чего вообще начинать разработку под андроид — на этот счет есть куча разных туториалов, и здесь на этом останавливаться не будем. В то же время статья не предназначена для продвинутых андроид-девелоперов, в ней будут рассматриваться достаточно базовые вещи, вроде мониторинга и обработки смс, работы с базой данных, подключения по HTTP.
Итак, приступим. Кстати, используемая версия SDK — 14 (Android 4.0).
1. Перехватываем СМС
Для мониторинга входящих СМС первым делом нам необходимо запросить разрешение на их получение. Для этого в файл AndroidManifest.xml необходимо добавить запись вида:
Следующим шагом будет реализация монитора для прослушивания входящих сообщений. Для этого в манифест-файле регистрируем receiver:
Здесь мы установили приоритет равным 100, чтобы наше приложение получило доступ к входящему СМС раньше стандартного обработчика СМС, которое имеет нулевой приоритет. После того, как наше приложение обработает сообщение, нет смысла отдавать его системе, и помещать в папку Входящие.
Теперь создаем класс, расширяющий BroadcastReceiver :
В этом классе реализуется абстрактный метод onReceive() , который вызывается системой каждый раз при получении сообщения. В методе прописываем:
Здесь мы получаем сообщение с помощью метода intent.getExtras().get(«pdus») , который возвращает массив объектов в формате PDU — эти объекты мы потом приводим к типу SmsMessage с помощью метода createFromPdu() .
Теперь внимание. То, что мы делаем после получения сообщения, должно исполняться быстро. Broadcast receiver получает в системе высокий приоритет, но он работает в фоновом режиме и должен выполняться за короткое время, так что наши возможности ограничены. Например, мы можем сгенерировать уведомление или запустить службу, чтобы продолжить обработку в ней. Поэтому мы проверим отправителя сообщения, и если это уведомление об игре — мы вытащим текст сообщения и запустим службу, в которой уже и будем проводить обработку этого сообщения.
Дописываем в методе onReceive() :
Здесь мы составляем текст сообщения (в случае, когда сообщение было длинным и пришло в нескольких смс-ках, каждая отдельная часть хранится в messages[i] ) и вызываем метод abortBroadcast() , чтобы предотвратить дальнейшую обработку сообщения другими приложениями.
2. Обрабатываем СМС
В предыдущем пункте мы остановились на том, что запускаем службу для обработки смс с помощью метода startService() . Собственно, что такое службы и с чем их едят хорошо описано на официальном сайте, поэтому здесь на этом останавливаться не будем.
Создаем класс SmsService , расширяющий класс Service :
Поскольку у нас локальная служба, метод onBind() возвращает null.
Для вывода уведомлений нам понадобится вспомогательный метод showNotification():
В методе onStartCommand() прописываем:
Осталось, собственно, реализовать метод smsProcess() , который добавит смс в базу и сформирует мероприятие в гугл-календаре. Этим и займемся в следующей части статьи.
UPDATE: выложил код на GitHub. Со второй частью статьи пока не успеваю, слишком уж загружен по работе. Надеюсь в ближайшее время с этим вопросом разберусь.
Источник
Как сделать бэкап СМС-сообщений на Android
Потерять данные — это всегда очень и очень обидно. Тем более, если среди потерянной информации есть та, которую уже не восстановить. Однако на Android давно уже есть система резервного копирования. Только вот (сюрприз!) резервное копирование текстовых сообщений не является частью облачного сервиса Google, поэтому процедуру сохранения данных вам придется производить самостоятельно. Благо, что сделать это довольно не сложно и сейчас вы узнаете, что для этого нужно.
Сообщения — это важный источник информации. И их нужно сохранить!
Как создавать резервные копии SMS-сообщений при помощи Google Диска
Google имеет удобный сервис резервного копирования SMS-сообщений для хранения их на просторах вашего Google Drive. Там же хранятся и ваши персональные данные (которые почему-то автоматически копироваться могут). Ну да ладно, оставим это на совести Google и будем надеяться, что в будущем поисковый гигант все же добавит крайне нужную опцию по-умолчанию. Ну а пока этого не произошло, давайте пользоваться тем, что есть.
- Проведите пальцем вниз сверху, чтобы отобразить центр уведомлений.
- Нажмите на значок «Настройки».
- Проскролльте меню вниз, чтобы добраться до нижней части страницы.
- Нажмите значок Google, далее выбирайте «Резервное Копирование» — «Копировать сейчас»
Ваши резервные копии появятся в главном меню Google Drive. Недостатком данного метода является то, что объем сохраняемых данных ограничен свободным местом на Google Drive, поэтому старые резервные копии будут удалены с течением времени. А также не очень приятно то, что, как уже было сказано, автоматически копировать сообщения таким образом не выйдет. Поэтому переходим к более радикальному способу. Если вы знаете другие способы копирования сообщений на Android, то поделитесь ими в нашем чате в Телеграм. Разумеется, после прочтения этой статьи.
Как автоматически создавать резервные копии ваших SMS-сообщений с помощью стороннего приложения
Сторонние приложения помогут сделать то, на что не способен Android
Для этого в виртуальном магазине есть масса программ и все они работают схожим образом, но мы рассмотрим приложение SMS Backup & Restore, которое вы можете скачать бесплатно из магазина Google Play. Оно обладает всем нужными нам функциями и практически не имеет ограничений. Приложение будет запрашивать разрешения на доступ к вашим контактам, медиафайлам и сообщениям, но не стоит пугаться. Программа предназначена именно для работы с этим типом данных и без подобных разрешений корректно работать она просто откажется.
Немаловажным фактом является также то, что вы можете делать бэкап данных по расписанию (доступно создание копий раз в неделю, раз в день или раз в час), а в качестве места хранения вы можете выбирать не только Google Drive, но и сервисы Dropbox или OneDrive. А еще вы можете указать, каким образом осуществлять резервное копирование — при подключении к сети Wi-Fi или при использовании канала сотовой связи (либо же и так, и так). Помимо всего прочего, если вы не доверяете «облакам», то имеете полное право сохранить резервные копии на карте MicroSD или в определенной папке на вашем телефоне.
Источник
Резервное копирование SMS с Android на ПК
Способ 1: SMS Backup & Restore
Первый вариант, который мы хотим рассмотреть, подразумевает создание резервной копии на самом телефоне и её перенос на компьютер. В качестве примера такого софта будем использовать SMS Backup & Restore, бесплатно доступный в Google Play Маркете.
- После запуска приложения нажмите «Начать работу», затем выдайте все необходимые разрешения.
Выберите, что именно вы желаете сохранить: СМС и вызовы либо просто СМС.
Пункт «Расширенные настройки» позволяет установить сохранение медиафайлов во всех сообщениях либо только в каком-то из выбранных диалогов.
Далее выберите учётную запись и выдайте приложению разрешение на работу.
Теперь нажмите «Сохранить».
По возвращению в предыдущий экран тапните «Далее».
Сохранение бэкапа SMS на телефон совершается по похожему алгоритму – сначала активируйте нужный переключатель.
Далее настройте местоположение готового файла – рекомендуется выбрать легкодоступную пользовательскую папку – и нажмите «ОК».
На следующем экране можно настроить автоматическую архивацию СМСок.
Если вы синхронизировали резервную копию с облачным сервисом, для сохранения её на компьютер просто зайдите в ваше хранилище и загрузите её оттуда.
Если копия загружена локально, подключите смартфон к компьютеру, откройте его внутреннюю память, перейдите к установленной на предыдущем шаге папке и скопируйте её содержимое.
SMS Backup & Restore представляет собой простое и удобное решение, но для работы ему требуется интернет.
Способ 2: Приложение-компаньон для ПК
Другое решение нашей сегодняшней задачи заключается в использовании приложений для компьютера, в которых есть инструменты резервного копирования данных, в том числе и SMS. Можно задействовать как универсальные средства, так и вендорский софт для тех или иных марок смартфонов.
Универсальная программа
Универсальные программы удобнее тем, что подходят практически для всех моделей Android-смартфонов, единственное требование – наличие установленных драйверов.
Решений рассматриваемого класса присутствует немало, так что мы остановимся на продукте под названием Coolmuster Android Assistant.
Также для работы данного софта понадобится активировать отладку по USB.
- В главном окне средства выберите «Android Assistant».
Следуйте инструкциям на экране для подключения устройства.
В процессе будет инсталлировано приложение для Android, выдайте ему все необходимые разрешения.
Подождите, пока телефон распознаётся Coolmuster Android Assistant. После того как соответствующая вкладка появится в главном окне программы, с помощью меню слева выберите пункт «SMS».
Выделите сообщения, которые хотите сохранить, затем воспользуйтесь кнопкой «Export».
Выберите формат, в котором будет хранится резервная копия – доступны HTML, CSV, BAK и обычный текст.
В диалоговом окне «Проводника» выберите каталог, куда будут помещены файлы с бэкапом.
Для того чтобы просмотреть папку с результатом, нажмите на следующем экране на кнопку «Show in folder».
Будет открыта выбранная ранее локация.
У данного метода есть несколько недостатков, главные из которых – платная модель распространения программы, отсутствие перевода на русский и необходимость регулярно проделывать процедуру экспорта.
Фирменное приложение
Многие крупные производители Android-смартфонов выпускают программы-компаньоны, предназначенные для сохранения резервных копий содержимого устройств. Работу с подобным софтом покажем на примере решения HiSuite от компании Huawei.
- Инсталлируйте программу, после чего она запустится автоматически. Подключите смартфон по кабелю и кликните по кнопке «USB».
На телефон будет установлено специальное приложение – оно попросит доступ к содержимому, предоставьте его. Далее будет показан код, введите его в окне ХайСьют на компьютере.
После установки подключения выберите вариант «Сообщения».
Откроется список ваших СМС. Выделите нужные или воспользуйтесь кнопкой «Выделить всё» внизу, затем нажмите «Экспорт».
Появится окно настроек экспортирования – в нём можно повторно выбрать все сообщения, а также указать папку, где будет сохранена резервная копия. Выберите нужное и снова воспользуйтесь кнопкой «Экспорт».
Использование программ для Android-устройств других производителей происходит по схожему алгоритму.
Помимо этой статьи, на сайте еще 12470 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник