Как написать программу смс для Андроид

SMS является неотъемлемой частью мобильных устройств и мобильных приложений. Подавляющее большинство мобильных пользователей используют услугу SMS на своих мобильных телефонах; некоторые используют его десятки раз в день. Android предоставляет очень хороший API, поэтому разработчики могут интегрировать технологию SMS в свои приложения, повышая полезность и привлекательность своих приложений. В этой статье мы рассмотрим несколько приложений, которые используют технологию SMS через API, предоставляемые Android.

Как запустить приложение SMS из вашей программы.

Сейчас мы собираемся создать небольшое приложение, которое скажет «привет» нашим друзьям, отправив SMS-сообщение. Это приложение будет принимать номер друга у пользователя, затем приложение запустит приложение SMS на мобильные телефоны с введенным пользователем номером и, наконец, отправит сообщение «привет».

Шаг 1: Создание пользовательского интерфейса и макета

Сначала создайте простое действие под названием LaunchSMS, затем мы создадим макет следующим образом:

Как сделать программу для массовой рассылки SMS в android studio

Выше мы создали линейный макет с одним TextView, чтобы сообщить пользователю, что он должен ввести номер получателя. Затем у нас есть один EditText для получения числа от пользователя и одна кнопка, которая при нажатии вызывает метод sayHello.

Код для деятельности выглядит следующим образом:

Шаг 2: Инициализация действия

Используя метод onCreate, мы установим основной макет, который мы создали, как представление контента. Затем я создал личный член для хранения EditBox для номера сообщения.

public void onCreate(Bundle savedInstanceState)

Пользовательский интерфейс приложения будет выглядеть следующим образом:

Шаг 3: Запуск приложения SMS

public void sayHello(View v)

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

Теперь, чтобы запустить приложение SMS, нам нужно создать следующее:

Intent sendIntent = new Intent(Intent.ACTION_VIEW);

Затем мы устанавливаем данные о намерениях с помощью числа, введенного пользователем, следующим образом:

sendIntent.setData(Uri.parse(«sms:»+_messageNumber));

Наконец, текст сообщения передается как дополнительные данные в намерении с использованием метода putExtra в намерении.

sendIntent.putExtra(«sms_body», messageText);

Затем намерение отправляется путем передачи созданного намерения в startActivity. Это запустит приложение SMS пользователя с уже заполненным номером и текстом сообщения. Пользователь может вносить изменения, если он или она хочет, и тогда ему просто нужно нажать «отправить», чтобы отправить сообщение своему другу.

Читайте также:
Лучшие программы для граббинга

11. Создание и нового пользователя по номеру телефона. Отправка СМС. Пишем мессенджер для Android.

Таким образом, используя намерения, мы можем запустить приложение SMS из нашей программы.

Как отправить SMS напрямую через API, предоставляемый Android

Теперь мы собираемся создать приложение, в котором DirectSendSMS будет расширенной версией предыдущего приложения. Это приложение будет напрямую отправлять пользователю сообщение «привет» с помощью Android SMS API.

Шаг 1: Создание пользовательского интерфейса и макета

Сначала нам нужно создать новый вид деятельности DirectSendSMS. Пользовательский интерфейс этого приложения будет таким же, как описанный выше, поэтому для этого мы также создадим линейный макет и добавим один Textiew, один EditText и одну кнопку.

Макет выглядит следующим образом:

Шаг 2: Инициализация действия

Инициализация действия также такая же, как описано в предыдущем приложении. В функции onCreate мы устанавливаем основной макет в качестве представления содержимого и принимаем EditBox в приватную переменную.

public void onCreate(Bundle savedInstanceState)

Шаг 3. Указание разрешения на отправку SMS

В Android необходимо указать все разрешения, необходимые приложению, в AndroidManifest.xml. Таким образом, при установке приложения все разрешения, требуемые приложением, будут показаны пользователю.

Чтобы в нашем приложении можно было отправлять сообщения, нам нужно добавить разрешение android.permission.SEND_SMS в AndroidManifest.xml следующим образом:

Шаг 4: Отправка SMS

public void sayHello(View v)

В функции sayHello мы получаем число, введенное пользователем. В переменной мы храним текст сообщения, которое мы хотим отправить. Затем мы получаем объект SmsManager следующим образом:

SmsManager sms = SmsManager.getDefault();

Затем, используя метод SmsManager sendTextMessage, мы отправляем сообщение.

Шаг 5: Отображение тоста, когда сообщение успешно отправлено

Теперь мы улучшили метод sayHello для отображения тоста после успешной отправки сообщения. Мы создаем для этого новый PendingIntent и передаем его в качестве аргумента методу sendTextMessage. Мы также регистрируем получателя для этого намерения, который проверяет код результата и отображает тост с сообщением отправлено.

Теперь приложение будет выглядеть следующим образом:

Как заставить ваше приложение отвечать на SMS-сообщения

Теперь мы собираемся создать приложение, которое будет отвечать при получении SMS. Это приложение будет отображать только входящее сообщение на тосте.

Шаг 1. Создайте новое приложение

Для этого приложения мы собираемся создать BroadcastReciever для перехвата входящего SMS-сообщения. Хотя мы не создаем для этого действие, обычно такие приложения могут создавать действие для страницы настроек таких приложений.

Ниже приводится AndroidManifest.xml для этого приложения:

Здесь мы добавляем разрешение android.permission.RECEIVE_SMS в наше приложение, чтобы мы могли отвечать на полученные SMS.

Шаг 2: Создание получателя SMS

Код для получателя SMS следующий:

Отправка и получение SMS сообщений в Android

программирование отправки SMS в android

Как это ни удивительно, SMS сообщений сегодня остаются одним из самых востребованных сервисов, что вполне объясняет интерес, проявляемый Android разработчики к этой тема. Из данного урока Вы узнаете, как программно отправлять и получать SMS сообщения. Будет показано, как провести тестирование приложения на эмуляторе.

Читайте также:
80070002 ошибка установки программы

Отправка SMS сообщений в Android

Создайте в Eclipse новый проект со следующими параметрами:

  • Project Name: SMSMessaging
  • Package name: net.learn2develop.SMSMessaging
  • Activity Name: SMS
  • Application Name: SMS App

Для того, чтобы наше прилоение могло работать с SMS, ему необходимо дать соответствующие разрешения: SEND_SMS для отправки и RECEIVE_SMS — для получения. Откройте файл AndroidManifest.xml и приведите его к виду:

Настроим шаблон дизайна приложения. Откройте файл res/layout/main.xml и приведите его к виду

xml version=»1.0″ encoding=»utf-8″?>

В результате у Вас должен получиться следующий шаблон:

sms шаблон приложения

Перейдем к редактированию кода. В SMS activity напишем обработчик нажатия на кнопку. После щелчка мы должны проверить введен ли номер телефона и текстовое сообщение. Если все в порядке, мы вызываем функцию sendSMS(), которая отправляет сообщение.

Напишем реализацию функции sendSMS()

private void sendSMS(String phoneNumber, String message) { PendingIntentpi= PendingIntent.getActivity(this,0, new Intent(this, SMS.

class),0); SmsManager sms= SmsManager.getDefault(); sms.

sendTextMessage(phoneNumber,null, message,pi,null); }

Для отправки SMS сообщения в Android используется класс SmsManager. в отличии от друих классов, мы не можем получить экземпляр SmsManager напрямую.

Для решения этой задачи необходимо вызвать статический метод getDefault(), который возвращает требуемый объект класса SmsManager. Метод sendTextMessage() отправляет sms сообщение с помощью PendingIntent. Объект PendingIntent используется для определения activity, которая будет вызвана после отправки сообщения. В приведенном выше коде объект pi ссылается на ту же activity из которой он вызывается, то есть после отправки SMS сообщения activity не поменяется.

Если Вы хотите отслеживать состояние процесса отправки сообщения, вам понадобится два объекта PendingIntent и два объекта BroadcastReceiver

В приведенном выше листинге объект sentPI используется для отслеживания процесса отправки. Когда SMS сообщение отправлено, генерируется первое событие onReceive для BroadcastReceiver. Именно здесь можно проверить статус процесса отправки. Объект PendingIntent (deliveredPI) используется для мониторинга доставки. Когда сообщение успешно доставлено, генерируется еще одно событие onReceive для BroadcastReceiver.

Теперь можно провести тесстирование приложения. При отладке на компьютере можно посылать сообщения от одного эмулятора другому. Для этого просто запустите два эмулятора (в папке android SDK зайдите в каталог Tools Emulator.exe). В качестве номера, куда вы отправляете SMS, нужно указать номер порта эмулятора. Его можно увидеть в загаловке окна эмулятора в круглых скобках.

На рисунке показан пример отправки сообщения с эмултора 5554 на эмулятор 5556.

Отправка sms в эмуляторе

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

Если Вы не хотите разбираться в тонкостях отправки SMS сообщений, то можете воспользоваться встроенным в Android стандартным приложением, дав ему задание через интент.

Intent sendIntent=new Intent(Intent.ACTION_VIEW); sendIntent.putExtra(«sms_body»,»Content of the SMS goes here. «); sendIntent.

setType(«vnd.android-dir/mms-sms»); startActivity(sendIntent);

Получение SMS сообщений в Android

Помимо отправки SMS вы также можете организовать перехват входящих SMS сообщений. Делается это с помощью все того же объекта BroadcastReceiver.

Читайте также:
Сервисная программа adjustment program для l805 как пользоваться

Чтобы Ваше приложение могло перехватывать SMS-ки, нужно в файле AndroidManifest.xml добавить элемент . В приведенном ниже примере для получения сообщений будет использоваться класс SmsReceiver.

Теперь нужно добавить в проект новый класс SmsReceiver.java, который является наследником BroadcastReceiver. Внутри SmsReceiver нужно написать собственную реализацию метода onReceive()

При получении SMS сообщения вызывается метод onReceive. SMS сообщение упаковывается и присоединяется к объекту intent (второй параметр метода onReceive). SMS сохраняется в массиве Object в PDU формате. Чтобы распаковать SMS сообщение нужно воспользоваться методом createFromPdu() класса SmsMessage. После этого можно отобразить сообщения с помощью класса Toast

Вот, собственно, и все! Можете запускать эмуляторы и тестировать приложение. На приведенном ниже рисунке с помощью класса Toast показано полученное сообщение.

Получение sms в android

Заключение

В этой небольшой статье было показано, как можно отправлять и получать SMS сообщения в Android. Это очень интересная и нужная возможность. Например, вы можете написать приложение, которое будет отслеживать положение телефона. Вы можете отправлять зашифрованные SMS сообщения этому приложению, и оно будет отправлять вам ответ с координатами аппарата.

Исходный код примера можно скачатьздесь.

Источник: www.mobilab.ru

Как написать программу смс для андроид

Сегодня мы разберемся, как в Android происходит отправка SMS сообщения. Для этого мы создадим приложение, которое будет оборудовано двумя полями: для ввода номера получателя и текста сообщения, а также двумя кнопками, одна из которых будет отправлять SMS сообщение, а другая будет запускать стандартное приложение для работы с SMS на устройстве, передавая туда набранный текст в поле сообщения.

Начнем с создания нового проекта, выбираем версию Android 2.2+, Blank Activity. Первым делом нужно получить необходимое разрешение для приложения, чтобы оно обрело способность работать с SMS сообщениями аппарата. Для этого идем в файл AndoidManifest.xml и добавляем туда следующее разрешение:

uses-permission android_name=»android.permission.SEND_SMS»/>

Теперь открываем файл activity_main.xml и создаем интерфейс нашего приложения:

Приложение будет выглядеть вот так:

Отправляем смс сообщение

Теперь осталось написать необходимый код. Открываем файл MainActivity.java и добавляем сюда следующее:

По сути сам процесс отправки сообщения выполняется в помощью SmsManager, который мы вызываем при нажатии кнопки «Отправить», передаем в этот менеджер данные о введенных номере и текст сообщении, преобразовывая их в строки, и задаем отправку сообщения с помощью команды sendTextMessage, дополняя это всплывающим Toast сообщением об успехе или неудаче операции.

Также мы снабдили наше приложение возможностью вызова стандартного приложения для отправки SMS на Android устройстве. При его вызове с помощью Intent, аналогично переходу на другое activity, мы передаем в стандартное приложение введенный текст в поле сообщения и в стандартном приложении отобразиться введенный в нашем приложении текст.

Запускаем приложение и смотрим, что у нас вышло:

отправляем сообщение

Теперь можем выбрать жертву и забомбить SMS сообщениями :).

Источник: learn-android.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru