- Отправка и получение SMS сообщений в Android
- Отправка SMS сообщений в Android
- Получение SMS сообщений в Android
- Заключение
- 7 лучших бесплатных SMS-приложений для Android
- Лучшее в плане темы: GO SMS Pro
- Лучшее в плане настройки: Handcent Next SMS
- Лучшее в плане простоты: Android Messages
- Лучшее для нескольких устройств: MySMS
- Лучшее в плане безопасности: Signal Private Messenger
- Лучшее в плане комплексного обслуживания: chomp SMS
- Лучшее в плане внешнего вида: QKSMS
- Лучшее в плане универсальности: EvolveSMS
- 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 сообщения этому приложению, и оно будет отправлять вам ответ с координатами аппарата.
Исходный код примера можно скачатьздесь.
Источник
7 лучших бесплатных SMS-приложений для Android
Не все люди используют WhatsApp или Facebook Messenger: есть моменты, когда по-прежнему предпочитается доброе старое SMS-сообщение. Мы собрали список лучших приложений для этого.
Многие из вас, вероятно, располагают возможностью отправки множества сообщений в рамках вашего тарифного плана, но давайте посмотрим правде в глаза: эти СМС-сообщения не очень популярны по сравнению с такими приложениями, как WhatsApp и Facebook Messenger. Возможно, вы захотите отключить Facebook и WhatsApp, памятуя о вопросах конфиденциальности данных. Тогда имеет смысл загрузить SMS-приложение, чтобы иметь лучший текстовый опыт с повышенно безопасностью, настройками и т.д.
Лучшее в плане темы: GO SMS Pro
GO SMS Pro – отличное универсальное приложение для текстовых сообщений. Оно действительно помогает вам максимально использовать неограниченные текстовые сообщения тарифного плана. В этом приложении присутствуют некоторые рекламные объявления, но зачастую, чтобы увидеть их, вам нужно щелкнуть по анимационным картинкам. У вас будут отличные функции, но лучшее, что есть в этом приложения – темы и стикеры.
Темы в приложении GO SMS Pro действительно хорошо разработаны и прекрасно интегрируются с его интерфейсом. Вам необходимо загрузить их из Google Play, при этом, как только вы их скачаете, вы сможете их легко настроить. Многие из тем бесплатны, но если вы хотите каких-то особенных вариантов, вам нужно будет дополнительно заплатить.
Опция «Отложить на отправку» – хорошая идея активации на случай, если вы допустили ошибку. Это бывает не так уж редко: у нас было много сообщений, которые мы отправляли, но потом очень хотели обратить время вспять. Если вы когда-либо случайно отправляли что-нибудь ругательное контакту из вашего списка, то вы, вероятно, захотите использовать функцию черного списка, чтобы подобные сообщения не могли отправляться.
Лучшее в плане настройки: Handcent Next SMS
Требуется несколько минут, чтобы настроить Handcent Next SMS, при этом данное приложение включает в себя отличные функции настройки, которые дадут вам гладкий персональный опыт, делая текстовые сообщения приятными и похожими на приложения-месседжеры, такие как WhatsApp или WeChat. Handcent Next SMS также располагает такими функциями, как праздничные электронные открытки или текстовые сообщения для дней рождения или праздников.
Возможности настройки Handcent действительно хороши, и мы настоятельно рекомендуем вам воспользоваться ими. Вы можете использовать скин-оболочки для интерфейса этого приложения – есть несколько хороших вариантов на выбор, которые часто обновляются. Также имеются весьма неплохие темы. Встроенные функции настройки наверняка придутся вам по душе, так как они меняют способ вашего взаимодействия с текстовыми сообщениями в целом.
Лучшее в плане простоты: Android Messages
Мы не поклонники Hangouts, которое усложняет простой процесс отправки сообщений. Android Messenger – это совсем другая история. Оно использует многие из лучших качеств Hangouts, без лишних действий. Messages обладает неброским интерфейсом, и, помимо отправки текстовых сообщений, вы также можете делать фотоснимки и записывать звуковые сообщения внутри этого приложения. Это типичное приложение от Google, располагающее основами того, что оно должно делать.
Лучшее для нескольких устройств: MySMS
MySMS имеет восторженные отзывы от СМИ и пользователей. Оно доступно для Windows, Mac и веб-браузеров, а также для Android, что означает, что вы можете отправлять сообщения с компьютера или планшета с помощью номера Android-телефона.
MySMS также поддерживает групповые сообщения и MMS, планирование сообщений, экспорт сообщений и резервное копирование и может подключаться к таким сервисам, как Evernote, Dropbox и Google Drive. Многие из расширенных функций требуют премиального членства, но 9,99 долларов в год вряд ли серьезно опустошат ваш кошелек за использование этого приложения.
Лучшее в плане безопасности: Signal Private Messenger
Если вы часто совершаете промахи по неосторожности, то трудно упустить из виду Signal Private Messenger. Оно более чем безопасно – вы даже не можете делать скриншоты этого приложения. Signal Private Messenger (также известное как TextSecure) будет шифровать ваши личные сообщения с помощью сквозных протоколов шифрования, как только вы зарегистрируете ваш номер.
Как вы, вероятно, знаете, у служб безопасности многих стран есть привычка перехватывать SMS-контент, когда он проходит через центры обработки данных. Signal обрабатывает только зашифрованный контент, поэтому ваши сообщения безопасны в пути. Все ваши вложения также зашифрованы.
Лучшее в плане комплексного обслуживания: chomp SMS
chomp SMS существует уже давно и стало одним из самых популярных Android-приложений для Android. Его функции включают в себя огромный массив эмоджи, блокировку приложения через пароль, блокировку сообщений, множество параметров конфиденциальности, черные списки и всплывающие окна быстрого ответа, не говоря уже о тонне настроек, плюс оно предлагает совместимость с Pushbullet и Android Wear.
Лучшее в плане внешнего вида: QKSMS
QKSMS является одним из самых красивых приложений для SMS, которые мы видели, предлагая Material Design, а также ряд тем, ночной режим, настройку, быстрые ответы, групповые сообщения, расписание сообщений и многое другое в среде без рекламы. Основное приложение бесплатное, но если вы хотите разблокировать все параметры цвета и расширенные функции, вы можете получить премиальный режим, заплатив 1,99 доллара.
Лучшее в плане универсальности: EvolveSMS
EvolveSMS – это SMS-приложение с поддержкой Google, которое мы желали бы видеть на месте Hangouts. EvolveSMS весьма функционально, с поддержкой мультимедийных сообщений (включая GIF) и совместимостью с Smartwatch. Оранжевый по умолчанию интерфейс выглядит великолепно, но вы также можете получить больше тем, если потратите немного денег за пакет настроек.
Прокрутка между беседами и панелью навигации осуществляется очень легко, плюс, есть множество предустановленных параметров настройки. Если вы хотите, чтобы SMS-приложение делало все, что вам нужно, тогда используйте именно Evolve.
Вы предпочли бы какое-либо из этих приложений WhatsApp или messenger? Расскажите нам об этом в комментариях.
Источник
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 указанному получателю.
Источник