Android — Sending SMS
In Android, you can use SmsManager API or devices Built-in SMS application to send SMS’s. In this tutorial, we shows you two basic examples to send SMS message −
Built-in SMS application
Of course, both need SEND_SMS permission.
Apart from the above method, there are few other important functions available in SmsManager class. These methods are listed below −
Sr.No. | Method & Description | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
Step | Description |
---|---|
1 | You will use Android Studio IDE to create an Android application and name it as tutorialspoint under a package com.example.tutorialspoint. |
2 | Modify src/MainActivity.java file and add required code to take care of sending sms. |
3 | Modify layout XML file res/layout/activity_main.xml add any GUI component if required. I’m adding a simple GUI to take mobile number and SMS text to be sent and a simple button to send SMS. |
4 | No need to define default string constants at res/values/strings.xml. Android studio takes care of default constants. |
5 | Modify AndroidManifest.xml as shown below |
6 | Run the application to launch Android emulator and verify the result of the changes done in the application. |
Following is the content of the modified main activity file src/com.example.tutorialspoint/MainActivity.java.
Following will be the content of res/layout/activity_main.xml file −
Here abc indicates about tutorialspoint logo
Following will be the content of res/values/strings.xml to define two new constants −
Following is the default content of AndroidManifest.xml −
Let’s try to run your tutorialspoint application. I assume you have connected your actual Android Mobile device with your computer. To run the app from Android studio, open one of your project’s activity files and click Run icon from the toolbar. Before starting your application, Android studio installer will display following window to select an option where you want to run your Android application.
Now you can enter a desired mobile number and a text message to be sent on that number. Finally click on Send SMS button to send your SMS. Make sure your GSM/CDMA connection is working fine to deliver your SMS to its recipient.
You can take a number of SMS separated by comma and then inside your program you will have to parse them into an array string and finally you can use a loop to send message to all the given numbers. That’s how you can write your own SMS client. Next section will show you how to use existing SMS client to send SMS.
Using Built-in Intent to send SMS
You can use Android Intent to send SMS by calling built-in SMS functionality of the Android. Following section explains different parts of our Intent object required to send an SMS.
Intent Object — Action to send SMS
You will use ACTION_VIEW action to launch an SMS client installed on your Android device. Following is simple syntax to create an intent with ACTION_VIEW action.
Intent Object — Data/Type to send SMS
To send an SMS you need to specify smsto: as URI using setData() method and data type will be to vnd.android-dir/mms-sms using setType() method as follows −
Intent Object — Extra to send SMS
Android has built-in support to add phone number and text message to send an SMS as follows −
Here address and sms_body are case sensitive and should be specified in small characters only. You can specify more than one number in single string but separated by semi-colon (;).
Example
Following example shows you in practical how to use Intent object to launch SMS client to send an SMS to the given recipients.
To experiment with this example, you will need actual Mobile device equipped with latest Android OS, otherwise you will have to struggle with emulator which may not work.
Step | Description |
---|---|
1 | You will use Android studio IDE to create an Android application and name it as tutorialspoint under a package com.example.tutorialspoint. |
2 | Modify src/MainActivity.java file and add required code to take care of sending SMS. |
3 | Modify layout XML file res/layout/activity_main.xml add any GUI component if required. I’m adding a simple button to launch SMS Client. |
4 | No need to define default constants.Android studio takes care of default constants. |
5 | Modify AndroidManifest.xml as shown below |
6 | Run the application to launch Android emulator and verify the result of the changes done in the application. |
Following is the content of the modified main activity file src/com.example.tutorialspoint/MainActivity.java.
Following will be the content of res/layout/activity_main.xml file −
Here abc indicates about tutorialspoint logo
Following will be the content of res/values/strings.xml to define two new constants −
Following is the default content of AndroidManifest.xml −
Let’s try to run your tutorialspoint application. I assume you have connected your actual Android Mobile device with your computer. To run the app from Android studio, open one of your project’s activity files and click Run icon from the toolbar. Before starting your application, Android studio will display following window to select an option where you want to run your Android application.
Select your mobile device as an option and then check your mobile device which will display following screen −
Now use Compose SMS button to launch Android built-in SMS clients which is shown below −
You can modify either of the given default fields and finally use send SMS button to send your SMS to the mentioned recipient.
Источник
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 sms to http
Краткое описание:
Рассылайте СМС, используя свой телефон на Android.
Описание:
SemySMS — бесплатный сервис CMC рассылок. Создавайте массовые СМС рассылки рекламы, сообщайте про акции и скидки сразу после регистрации!
Отправляйте и принимайте СМС сообщения через WEB интерфейс или API, используя любое количество ваших телефонов на android.
Осуществлять смс рассылку с телефона, легко!
Чтобы начать пользоваться нашим сервисом, просто установите на свой телефон приложение SemySMS.
ВНИМАНИЕ. На некоторых телефонах с процессором MediaTek статус о доставки является полностью фейковым! Проверяйте это перед началом рассылки.
Принцип работы сервиса:
- Регистрируетесь на сайте.
- Устанавливаете на свой телефон(ы) с андройдом приложение semysms, скачать его можно по ссылке с главной страницы сайта.
- Добавляете в список устройств, свой телефон, введя в поле «Код устройства», код указанный в приложении
- Создаете списки контактов выгрузкой из xls или экспортом из приложения, выбрав из меню приложения соответствующий пунк.
- Делаете рассылку смс на выбранную группу номеров.
Возможности и преимущества сервиса SemySMS:
- Вы сами выбираете подходящий тариф, пакет СМС-сообщений по ценам операторов сотовой связи, в обход существующих СМС-шлюзов
- Отправка как единичных, так и массовых СМС-сообщений
- Прием и хранение в сервисе входящих сообщений, что при соответствующей обработке позволяет создать двухстороннюю связь. Например для проведения соц. опросов или для отчета о проделанной работе
- Ваши телефоны объединяются в единую распределенную сеть с помощью сервиса, что обеспечивает огромную скорость отправки
- Отслеживание статуса отправки сообщений
- Удобная работа со списками контактов(импорт из файлов Excel, объединение в группы и т.д.)
- Отслеживание статистики и статуса отправляемых СМС-сообщений в реальном времени;
- Информативные отчеты по рассылкам
- API для интеграции с любой системой управления(интернет магазины, коды подтверждения, оповещение о каких-либо изменениях состояний и статусов, оповещение о предстоящих мероприятиях и многое другое)
- Настройка расписания отправки для запуска СМС-рассылки в заданный день и подходящий интервал времени с нужной периодичностью и количеством повторов
- Настройка ограничения количества отправляемых СМС-сообщений в мин/час/сутки/нед/мес
- Использование [тэгов] для автоматического формирования текста СМС-сообщений, подменяя тэги соответствующими данными контактов(например использование имени абонента в тексте СМС-сообщений)
- Вариативный шаблонизатор перебирает различные комбинации слов, словосочетаний и предложений, что позволяет генерировать различные тексты сообщений в рамках одной рассылки
Что это такое?
Это ограничение Android! Сделано это производителем для того, что бы смс в большом количестве не отправлялось скрытно от пользователя и не причинило ему материальный вред.
Источник