- Отправка и получение SMS сообщений в Android
- Отправка SMS сообщений в Android
- Получение SMS сообщений в Android
- Заключение
- Отправка смс через андроид студио
- SMS и MMS
- Обмениваемся SMS между виртуальными устройствами на эмуляторе
- Android — отправка смс
- пример
- Использование встроенного намерения для отправки SMS
- Intent Object — Действие для отправки SMS
- Intent Object — Данные / Тип для отправки SMS
- Intent Object — Дополнительно для отправки SMS
- пример
Отправка и получение 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 стандартным приложением, дав ему задание через интент.
Получение 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 происходит отправка SMS сообщения. Для этого мы создадим приложение, которое будет оборудовано двумя полями: для ввода номера получателя и текста сообщения, а также двумя кнопками, одна из которых будет отправлять SMS сообщение, а другая будет запускать стандартное приложение для работы с SMS на устройстве, передавая туда набранный текст в поле сообщения.
Начнем с создания нового проекта, выбираем версию Android 2.2+, Blank Activity. Первым делом нужно получить необходимое разрешение для приложения, чтобы оно обрело способность работать с SMS сообщениями аппарата. Для этого идем в файл AndoidManifest.xml и добавляем туда следующее разрешение:
Теперь открываем файл activity_main.xml и создаем интерфейс нашего приложения:
Приложение будет выглядеть вот так:
Теперь осталось написать необходимый код. Открываем файл MainActivity.java и добавляем сюда следующее:
По сути сам процесс отправки сообщения выполняется в помощью SmsManager, который мы вызываем при нажатии кнопки «Отправить», передаем в этот менеджер данные о введенных номере и текст сообщении, преобразовывая их в строки, и задаем отправку сообщения с помощью команды sendTextMessage, дополняя это всплывающим Toast сообщением об успехе или неудаче операции.
Также мы снабдили наше приложение возможностью вызова стандартного приложения для отправки SMS на Android устройстве. При его вызове с помощью Intent, аналогично переходу на другое activity, мы передаем в стандартное приложение введенный текст в поле сообщения и в стандартном приложении отобразиться введенный в нашем приложении текст.
Запускаем приложение и смотрим, что у нас вышло:
Теперь можем выбрать жертву и забомбить SMS сообщениями :).
Источник
SMS и MMS
2-й курс/Закрытая зона
Отправка SMS-сообщений является одной из наиболее востребованных функций в мобильных телефонах. Многие пользователи предпочитают набирать текстовые сообщения вместо телефонного звонка.
Технология SMS разработана для обмена небольшой текстовой информацией между мобильными телефонами. Она поддерживает отправку как текстовых (пригодных для чтения человеком), так и бинарных (созданных для обработки приложениями) сообщений. Более современный протокол под названием MMS позволяет пользователям отправлять и получать сообщения с мультимедийными данными: фотографиями, видео- и аудиофайлами.
Обмениваемся SMS между виртуальными устройствами на эмуляторе
Вы можете обмениваться SMS между виртуальными устройствами. Для этого вам сначала нужно их запустить. Если у вас одно устройство, то создайте еще через Android Virtual Device Manager (меню Window | AVD Manager). Например, у меня было два устройства для Android 2.3.3 и Android 4.0.
У каждого устройства в заголовке есть четырёхзначное число, типа 5554 или 5556. Запускаем программу «Сообщения» (Messages), набираем это число и вводим нужный текст для сообщения. Отправляем сообщение и на другом устройстве сразу появляется уведомление о пришедшем сообщениии. Открываем и отвечаем. Вот так всё просто
Единственная проблема — некорректная работа с русскими буквами. Я попытался ответить на русском, а на устройстве пришло сообщение с кракозябрами.
Можно запустить и одно устройство и отсылать сообщения самому себе. Процесс отправки сообщения на эмулятор описан здесь.
Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью
Источник
Android — отправка смс
В Android вы можете использовать API-интерфейс SmsManager или встроенное приложение SMS для отправки SMS. В этом уроке мы покажем вам два основных примера отправки SMS-сообщения:
Конечно, обоим нужно разрешение SEND_SMS .
Помимо описанного выше метода, в классе SmsManager есть еще несколько важных функций. Эти методы перечислены ниже —
Sr.No. | Метод и описание | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
шаг | Описание |
---|---|
1 | Вы будете использовать Android Studio IDE для создания приложения Android и назовите его как tutorialspoint в пакете com.example.tutorialspoint . |
2 | Измените файл src / MainActivity.java и добавьте необходимый код для отправки смс. |
3 | Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо. Я добавляю простой графический интерфейс, чтобы взять номер мобильного телефона и текст SMS для отправки и простую кнопку для отправки SMS. |
4 | Нет необходимости определять строковые константы по умолчанию в res / values / strings.xml. Android студия заботится о константах по умолчанию. |
5 | Измените AndroidManifest.xml, как показано ниже |
6 | Запустите приложение, чтобы запустить эмулятор Android, и проверьте результат изменений, внесенных в приложение. |
Ниже приведено содержимое измененного основного файла активности src / com.example.tutorialspoint / MainActivity.java .
Ниже будет содержание файла res / layout / activity_main.xml —
Здесь abc указывает на логотип tutorialspoint
Ниже будет содержимое файла res / values / strings.xml для определения двух новых констант:
Ниже приводится содержимое по умолчанию для AndroidManifest.xml —
Давайте попробуем запустить ваше приложение tutorialspoint . Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Перед запуском приложения установщик Android-студии отобразит следующее окно, чтобы выбрать вариант, в котором вы хотите запустить приложение Android.
Теперь вы можете ввести нужный номер мобильного телефона и текстовое сообщение, которое будет отправлено на этот номер. Наконец, нажмите кнопку « Отправить SMS» , чтобы отправить SMS. Убедитесь, что ваше соединение GSM / CDMA работает нормально, чтобы доставить ваше SMS получателю.
Вы можете взять несколько SMS, разделенных запятой, а затем внутри вашей программы вам придется анализировать их в строку массива, и, наконец, вы можете использовать цикл для отправки сообщения на все заданные номера. Вот как вы можете написать свой собственный клиент SMS. Следующий раздел покажет вам, как использовать существующий клиент для отправки SMS.
Использование встроенного намерения для отправки SMS
Вы можете использовать Android Intent для отправки SMS, вызывая встроенную функцию SMS в Android. В следующем разделе описываются различные части нашего объекта Intent, необходимые для отправки SMS.
Intent Object — Действие для отправки SMS
Вы будете использовать действие ACTION_VIEW, чтобы запустить клиент SMS, установленный на вашем устройстве Android. Ниже приведен простой синтаксис для создания намерения с действием ACTION_VIEW.
Intent Object — Данные / Тип для отправки SMS
Для отправки SMS необходимо указать smsto: в качестве URI с помощью метода setData () и тип данных будет vnd.android-dir / mms-sms с помощью метода setType () следующим образом:
Intent Object — Дополнительно для отправки SMS
Android имеет встроенную поддержку для добавления номера телефона и текстового сообщения для отправки SMS следующим образом:
Здесь address и sms_body чувствительны к регистру и должны указываться только маленькими символами. Вы можете указать более одного числа в одной строке, но разделяя их точкой с запятой (;).
пример
В следующем примере показано, как с помощью объекта Intent запустить клиент SMS для отправки SMS получателям.
Чтобы поэкспериментировать с этим примером, вам понадобится настоящее мобильное устройство с новейшей ОС Android, в противном случае вам придется бороться с эмулятором, который может не работать.
шаг | Описание |
---|---|
1 | Вы будете использовать IDE Android Studio для создания приложения Android и назовите его как tutorialspoint в пакете com.example.tutorialspoint . |
2 | Измените файл src / MainActivity.java и добавьте необходимый код для отправки SMS. |
3 | Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо. Я добавляю простую кнопку для запуска SMS-клиента. |
4 | Нет необходимости определять константы по умолчанию. Android-студия заботится о константах по умолчанию. |
5 | Измените AndroidManifest.xml, как показано ниже |
6 | Запустите приложение, чтобы запустить эмулятор Android, и проверьте результат изменений, внесенных в приложение. |
Ниже приведено содержимое измененного основного файла активности src / com.example.tutorialspoint / MainActivity.java .
Ниже будет содержание файла res / layout / activity_main.xml —
Здесь abc указывает на логотип tutorialspoint
Ниже будет содержимое файла res / values / strings.xml для определения двух новых констант:
Ниже приводится содержимое по умолчанию для AndroidManifest.xml —
Давайте попробуем запустить ваше приложение tutorialspoint . Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Перед запуском приложения Android Studio отобразит следующее окно, чтобы выбрать опцию, в которой вы хотите запустить приложение Android.
Выберите мобильное устройство в качестве опции, а затем проверьте свое мобильное устройство, которое отобразит следующий экран —
Теперь используйте кнопку « Создать SMS» для запуска встроенных в Android клиентов SMS, как показано ниже:
Вы можете изменить любое из указанных полей по умолчанию и, наконец, использовать кнопку «Отправить SMS», чтобы отправить свое SMS указанному получателю.
Источник