Отправить сообщение android studio

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

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

Отправка 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 и приведите его к виду

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

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

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

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

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

Читайте также:  Universal android app это

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

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

Чтобы Ваше приложение могло перехватывать 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 studio

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

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

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

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

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

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

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

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

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

Источник

Отправить сообщение android studio

Во многих приложениях можно увидеть форму обратной связи для отправки сообщений автору приложения, хотя, конечно, это чаще происходит через комментарии в Google Play. Но тем не менее, такая форма обратной связи тоже может быть полезна и сегодня мы научимся ее создавать. В процессе создания формы мы вспомним (или научимся) как работать с такими элементами, как EditText, Spinner, Checkbox, Button. Итак, мы создадим приложение, которое будет изображать окно отправки письма с отзывами о программе или своими предложениями к создателю приложения на его электронную почту. Стоит сразу отметить, что отправлять сообщения программа не будет, мы просто научимся делать подобную форму и поработаем с указанными выше элементами, а вот процесс реальной отправки сообщения мы рассмотрим позже в другом уроке.

Читайте также:  Для андроид строить мост для машин

Создаем новое приложение, как обычно названия можно оставить по умолчанию, а можете ввести что то свое. Выбираем activity Blank Activity.

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

Начнем с создания интерфейса приложения. Поместим все будущие элементы программы в теге ScrollView, таким образом мы будем уверенны в том, что приложение будет нормально отображать все элементы на разных размерах экрана. В файле activity_main.xml добавим следующий код:

Теперь начнем добавлять сюда необходимые элементы. Добавим элемент TextView, в котором будет отображаться текст с названием окна и предложением пользователю отправить свое сообщение. Текст в этом элементе нужно бы задать через строковые ресурсы @string, но мы просто введем название поля вручную:

Теперь нужно создать элемент EditText, в котором пользователь сможет ввести свое имя. Назовем этот элемент EditTextName. Будем использовать подсказку, команду hint, чтобы было понятно, что нужно вводить в этом поле. Опять же, я пошел путем страданий и ввода всего текста вручную, что не очень грамотно, вы можете усовершенствовать это и создать в файле strings.xml все необходимые строки. Итак, добавляем EditText:

Добавим еще один элемент EditText, в нем пользователь должен будет ввести свой электронный адрес. Назовем поле EditTextEmail, также как и в предыдущем элементе, добавим подсказку hint о том, что нужно вводить в этом поле:

Далее мы создаем элемент под названием Spinner, который позволит выбрать тип отправляемого сообщения, что это будет: похвала, жалоба, предложение или же отчет об ошибке. Назовем этот Spinner элемент SpinnerFeedbackType. Для начала нам нужно пройти в файл strings.xml и добавить туда строки, которые будут отвечать за пункты выбора в Spinner. Открываем файл strings.xml и добавляем туда следующее:

Теперь нам нужно создать строковый массив. В папке res/values создаем новый файл по имени arrays.xml и добавим туда следующее:

После проделанных выше шагов мы наконец то готовы создать наш Spinner:

Прямо под созданным элементом Spinner нужно создать еще одно поле EditText в которое пользователь будет вводить текст своего сообщения. Назовем этот элемент EditTextFeedbackBody, также настроим подсказку hint о типе текста, который нужно вводить. Чтобы дать пользователю больше пространства и свободы при вводе текста ответа, настроем команду inputType на textMultiLine и настроим количество линий на 5:

Читайте также:  Mecool bb2 pro tv box android

Далее мы должны добавить нашему приложению элемент CheckBox, в нем пользователю будет предложено выбрать, хочет ли он получить отчет о том, что его сообщение успешно дошло по адресу или же нет:

Ну и под конец работы с интерфейсом программы в файле activity_main.xml, добавим кнопку отправки сообщения Button. Настроим для нашей кнопочки текст с помощью атрибута text и зададим ей нажатие:

Работа с layout файлом нашей программы фактически готова. На данный момент окно программы должно выглядеть следующим образом:

Теперь переходим к работе к файлу java класса нашего приложения. По умолчания он имеет имя MainActivity.java. Первым делом добавим метод обработки нажатия на кнопку (как это сделать вы можете увидеть в уроке о Button):

Нам нужно организовать чтение программой введенных пользователем данных во все элементы EditText. Для этого

Таким же образом инициализируем и обработаем объекты Spinner и CheckBox:

После этого мы можем компилировать и запустить наше приложение. Вы увидите созданную нами почтовую форму:

Источник

программирование под Android

середа, 8 серпня 2012 р.

Учимся отправлять смс

Введение
Всем привет! Сегодня будем учиться отправлять смс. Научимся так же отправлять смс «пачками», отслеживать доставку.

Отправка sms
Передача смс осуществлятся при помощи объекта SmsManager:

получили ссылку на системный SmsManager. Так же стоит обновить манифест:

Далее следует прописать номер поулчателя (запустите ещё один эмулятор) и тело сообщения:

и непосредственно с помощу нашего менеджера отправляем смс:

метод sendTextMessage отправляет текстовое сообщение, в него мы передаём номер получателя и тело сообщения, остальные поля пока что не трогаем. Всё, можете отправлять.

Что бы отследить подтверждение о доставке необходимо зарегистрировать два слушателя. Первый слушатель будет срабатывать когда смс будет отправляться, второе сработает тогда когда получатель получил смс. Лучше всего для наглядности переопределить слушатели:

Собственно наверное немножко не понятно, BroadcasReceiver и PendingIntent своеобразные «мосты». BroadcasReceiver слушатель который слушает что получает PendingIntent на всём телефоне, а не только в вашем приложении.
Так же стоит отметить что стоит переопределить метод onStop() главного активити:

Далее можете отправить сообщение и посмотреть за результатами.

2 коментарі:

ссылки для скачивания недоступны. Немного неверен код для отправки длинных СМС.
Во-первых, проверять сообщение на длину в 160 символов имеет смысл только для СМС, написанных латиницей. Для СМС, написанных кириллицей, максимальная длина 70 символов. Условие лучше убрать вообще — код будет работать одинаково хорошо как для длинных, так и для коротких СМС.
Во-вторых не используется ресивер подтверждения отправки и в-третьих забыта фигурная скобка 🙂
Правильный код привожу ниже:

String SENT = «SMS_SENT»;
String DELIVERED = «SMS_DELIVERED»;

PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0);

registerReceiver(sendBroadcastReceiver, new IntentFilter(SENT));
registerReceiver(deliveryBroadcastReciever, new IntentFilter(DELIVERED));

Источник

Оцените статью