Android отправка смс

Содержание

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

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(), которая отправляет сообщение.

package net.learn2develop.SMSMessaging; import android.app.Activity;import android.app.PendingIntent;import android.content.Intent;import android.os.Bundle;import android.telephony.gsm.SmsManager;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast; publicclass SMSextends Activity{Button btnSendSMS;EditText txtPhoneNo;EditText txtMessage; /** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main); btnSendSMS=(Button) findViewById(R.id.btnSendSMS);txtPhoneNo=(EditText) findViewById(R.id.txtPhoneNo);txtMessage=(EditText) findViewById(R.id.txtMessage); btnSendSMS.setOnClickListener(new View.OnClickListener(){public void onClick(View v){String phoneNo= txtPhoneNo.getText().toString();String message= txtMessage.getText().toString();if(phoneNo.length()>0&& message.length()>0)sendSMS(phoneNo, message);elseToast.makeText(getBaseContext(),”Please enter both phone number and message.”,Toast.LENGTH_SHORT).show();}});}}

Напишем реализацию функции 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

private void sendSMS(String phoneNumber, String message){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); //—когда SMS отправлено—registerReceiver(new BroadcastReceiver(){@Overridepublic void onReceive(Context arg0, Intent arg1){switch(getResultCode()){case Activity.RESULT_OK:Toast.makeText(getBaseContext(),”SMS sent”,Toast.LENGTH_SHORT).show();break;case SmsManager.RESULT_ERROR_GENERIC_FAILURE:Toast.makeText(getBaseContext(),”Generic failure”,Toast.LENGTH_SHORT).show();break;case SmsManager.RESULT_ERROR_NO_SERVICE:Toast.makeText(getBaseContext(),”No service”,Toast.LENGTH_SHORT).show();break;case SmsManager.RESULT_ERROR_NULL_PDU:Toast.makeText(getBaseContext(),”Null PDU”,Toast.LENGTH_SHORT).show();break;case SmsManager.RESULT_ERROR_RADIO_OFF:Toast.makeText(getBaseContext(),”Radio off”,Toast.LENGTH_SHORT).show();break;}}},new IntentFilter(SENT)); //—когда SMS доставлено—registerReceiver(new BroadcastReceiver(){@Overridepublic void onReceive(Context arg0, Intent arg1){switch(getResultCode()){case Activity.RESULT_OK:Toast.makeText(getBaseContext(),”SMS delivered”,Toast.LENGTH_SHORT).show();break;case Activity.RESULT_CANCELED:Toast.makeText(getBaseContext(),”SMS not delivered”,Toast.LENGTH_SHORT).show();break;}}},new IntentFilter(DELIVERED)); SmsManager sms= SmsManager.getDefault();sms.sendTextMessage(phoneNumber,null, message, sentPI, deliveredPI);}

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

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

Теперь можно провести тесстирование приложения.

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

Его можно увидеть в загаловке окна эмулятора в круглых скобках. На рисунке показан пример отправки сообщения с эмултора 5554 на эмулятор 5556.

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

  

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

package net.learn2develop.SMSMessaging; import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent; publicclass SmsReceiverextends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent){}}

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

package net.learn2develop.SMSMessaging; import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.telephony.gsm.SmsMessage;import android.widget.Toast; publicclass SmsReceiverextends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent){//—получить входящее SMS сообщение—Bundle bundle= intent.getExtras();SmsMessage[] msgs=null;String str=””;if(bundle!=null){//—извлечь полученное SMS —Object[] pdus=(Object[]) bundle.get(“pdus”);msgs=new SmsMessage[pdus.length];for(int i=0; i

Источник: http://www.mobilab.ru/androiddev/smsandroid.html

Пять полезных Android-программ для работы с SMS

Android отправка смс

На виртуальных полках Google Play можно найти приложения практически для любых задач. Книги рецептов, медиапроигрыватели, фоторедакторы, справочники и игры — за всем этим разнообразием нетрудно забыть, что основная задача смартфона — обеспечение пользователя мобильной связью.

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

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

Как правило, большинство пользователей применяет для этого встроенный SMS-клиент. Но решения от разработчиков зачастую обделены функциональностью.

Даже Google признал ограниченность встроенных приложений для работы с SMS и предложил использовать универсальный месседжер Hangouts.

Но и это приложение не идеально, иначе как объяснить стремление пользователей искать альтернативные решения в Сети?

Изучив мнения посетителей нашего форума и Google Play, мы представляем вашему вниманию подборку инструментов для работы с SMS.

SMS Backup & Restore

Одно из самых полезных приложений для хранения SMS. Независимо от количества открытых диалогов и сообщений в них, SMS Backup & Restore за доли секунды импортирует записи в резервный XML-файл.

При этом можно сохранить как всю коллекцию SMS, так и выбрать отдельные диалоги.

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

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

Приложение также поддерживает архивирование в один файл, автоматическую отправку по электронной почте и синхронизацию резервных копий через Dropbox. Кроме того, разработчики предусмотрели опцию автоматизации резервного копирования по расписанию и защиту паролем.

Отдельно стоит отметить способ монетизации проекта: разработчик разрешил отключать через настройки рекламу и просьбу о пожертвовании небольшой суммы в бесплатной версии. В полной эти модули отсутствуют.

Плюсы:

  • несколько типов резервирования;
  • защита резервных копий PIN-кодом;
  • архивирование резервных копий в одной папке;
  • архивирование резервных копий в одном файле.

Минусы:

  • нет серьёзных недостатков.

Hover Chat или Ninja SMS

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

После появления всплывающего окна можно либо закрыть его, либо развернуть на весь экран и ответить, либо свернуть на время. Разработчики приложения позаботились и о настройке интерфейса: Ninja SMS поддерживает пользовательские темы оформления. Но главное преимущество месседжера в том, что он работает практически на всех сборках Android (начиная с 2.2 версии ОС).

Из недостатков можно отметить лишь частичную локализацию на русский и не совсем понятное разделение на платную и обычную версии, поскольку авторами не заявлено каких-либо ограничений для бесплатной.

Плюсы:

  • вывод входящих сообщений поверх всех окон;
  • поддержка тем оформления.

Минусы:

  • плохая локализация на русский язык.

Handcend SMS

Handcend SMS полностью заменяет собой обычный SMS-клиент, при этом привнося обширный набор дополнительных функций.

Приложение умеет отправлять текстовые и мультимедийные сообщения (MMS), открывать беседы в собственной службе быстрых сообщений Handcend Talk, архивировать и восстанавливать беседы, озвучивать и выводить поверх всех окон содержание сообщений, защищать и фильтровать открытые диалоги. Особенно интересны функции защиты переписки. Система PIN-кодов и чёрных списков сохранит ленты сообщений в полной безопасности, при этом защищённые беседы можно вообще скрыть из общего списка, отправив их во внутреннее хранилище.

Есть у приложение и недостатки, пусть и не сильно влияющие на основные функции. Например, изначально интерфейс ориентирован на англоязычного пользователя, а для активации дополнительного языка потребуется отдельно установить необходимый языковой пакет. Аналогичная проблема и с ым сопровождением.

Плюсы:

  • архивирование и восстановление диалогов;
  • защита и фильтр входящих сообщений;
  • чёрный список.

Минусы:

  • для локализации потребуется загрузка дополнительного контента.

Textra SMS

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

Textra SMS умеет отправлять текстовые сообщения и MMS, блокировать и скрывать входящие от контактов из чёрного списка и выводить несколько типов уведомлений: звуковое, нотификацию и всплывающее окно.

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

Приложение распространяется бесплатно и без рекламы. Дополнительно автор предлагает загрузить набор Emoji-смайликов и несколько тем оформления.

Плюсы:

  • чёрный список;
  • ответ на входящие прямо из панели нотификации.

Минусы:

  • особых недостатков не замечено.

Go SMS

Большинство тех, кто хотя бы раз пытался найти сторонний SMS-месседжер, устанавливало этот клиент. И не так важно количество разнообразных функций в нём — тут скорее особую роль играет известность разработчиков. За последние лет пять компания Go Dev Team выпустила не одно популярное приложение для настройки интерфейса системы.

Go SMS, может порадовать любителей общения полной поддержкой SMS и MMS, функциями резервного копирования и восстановления диалогов, чёрным списком и поддержкой автоматизированной отправки сообщений по расписанию. Но особую роль в Go SMS играет интуитивно понятный интерфейс. Также в приложении есть набор виджетов и коллекция дополнительных тем как от самих Go Dev Team, так и от сторонних разработчиков.

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

Единственный минус Go SMS в том, что до недавнего времени он был комбайном, перегруженным лишним контентом.

Однако в последних обновлениях разработчики вынесли большую часть дополнительных настроек в платную версию, превратив обычную в простой и очень удобный месседжер.

Плюсы:

  • интуитивно понятный интерфейс;
  • резервное копирование;
  • чёрный список;
  • расписание;
  • набор тем и виджетов.

Минусы:

Источник: https://4pda.ru/2014/11/12/184992

Как отправить СМС со смартфона: пошаговая инструкция и как настроить сервис

Android отправка смс
Антон Гуртовой

SMS-сообщения – легкий и быстрый способ поддерживать связь.

Все смартфоны Android и iPhone поддерживают функцию текстовой рассылки, и она остается востребованной, несмотря на изобретение мессенджеров для общения.

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

SMS – что это

С английского языка аббревиатура SMS переводится как «служба коротких уведомлений». Так называется технологический прием раздачи короткого текста через мобильное устройство связи. Особенность технологии – исключение нагрузки на сеть. Скорость доставки СМС не превышает 10 секунд. Отправивший пользователь видит уведомление об успешной доставке сообщения.



В современных смартфонах переписка выглядит как комикс-тексты в красивых «облачках». Читать их удобно и эстетически приятно.

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

Как отправить SMS-сообщение

В целом, технология отправки СМС одинакова для всех смартфонов. Есть незначительные различия и нюансы для устройств Android и iPhone.

Android

Чтобы отправить СМС, в главном меню найдите значок Messages. Обычно в Android он выглядит как конвертик.

Открыв окошко сообщений:

  • Введите адрес. Можно отыскать нужный адресат в перечне контактов, а можно просто ввести мобильный номер в адресную строку «Кому». В первом случае войдите в «Контакты», выберите получателя, откройте контакт, задайте действие «Отправить SMS». Во втором случае смартфон автоматически предлагает варианты, из которых выберите требуемый.
  • Напишите текст в поле сообщения, где стоит курсор. В смартфонах виртуальная клавиатура появляется автоматически.
  • Завершив письмо, нажмите команду «Отправить».

iPhone

Чтобы отправить СМС, в меню отыщите ярлык Messages. В смартфонах Apple он обычно выглядит как облачко, каким обозначают фразы в комиксах.

Откроется окошко сообщений, в котором:

  • Введите номер адресата. Либо выберите нужного абонента в списке контактов.
  • Напишите, что желаете, в текстовом поле при помощи виртуальной клавиатуры. В iPhone также можно нажать на значок микрофона, тогда появится возможность отправить ое сообщение.
  • Отправьте СМС, нажав соответствующую команду.

В смартфонах в диалоговом окне сразу видно, что собеседник набирает ответное сообщение: появляется соответствующий значок в виде пишущего карандашика или чего-то подобного.

Чтобы отправить MMS, то есть фото или видео, на смартфоне Apple найдите опцию Camera, нажав на значок в виде плюса в левой стороне текстового поля. В других устройствах функция может называться Send Picture или как-то подобно.

Отправить можно и галерейную фотографию, и только что сделанную.

Как открыть переписку с абонентом

В современных смартфонах посмотреть ранее созданные СМС проще простого. Войдите в меню Messages, там находится вся переписка.

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

Выберите нужное сообщение, нажмите на него, чтобы открылось окно переписки, в котором можно написать ответ. Если смахнете пальцем СМС в сторону, документ удалится.

Как правильно настроить SMS

Чтобы настроить систему СМС:

  • Откройте в меню «Настройки».
  • В системных приложениях выберите «Сообщения».
  • Откроется окно для введения желаемых данных.
  • Подтвердите действия.

В окне настроек СМС сделайте следующее:

  • выберите форму приходящего сообщения;
  • установите фотографию отправителя СМС (если фото нет, будет отражаться стандартная иконка);
  • подтвердите звуковое сопровождение SMS (мелодию подберите в разделе «Звуки и вибрация»);
  • выберите, показывать ли заблокированные СМС;
  • укажите, сообщать ли о SMS при заблокированном экране;
  • активируйте получение отчетов об успешной доставке сообщений;
  • подтвердите оповещения на «шторке».

Возможны также настройки в ходе создания СМС:

  • Функция «Частые фразы» позволяет задать наиболее употребляемые предложения, которые станут доступными для быстрого введения.
  • Появляющиеся при переписке текстовые «облака» небольшие, бывает трудно понять важность СМС, бросив на него быстрый взгляд. Но в операционной системе MIUI для Android есть замечательная функция увеличения переписки. Два раза нажмите пальцем на СМС, оно увеличится.
  • Чтобы поставить время отправки СМС, нажмите на значок в виде плюса. Установите желаемую дату и время.
  • Чтобы SMS появлялось в начале списка, выберите нужное сообщение, нажмите на него, долго держите. В открывшемся списке функций выберите «Закрепить».

Почему СМС не отправляются

Есть несколько причин такой неприятности:

  • Некоторые мобильные операторы на непродолжительное время для проверки безопасности блокируют функцию СМС после замены SIM-карты. Просто дождитесь прекращения периода блокировки.
  • На счете закончились средства.
  • Перегрузка сервера мобильного оператора. Такое бывает в большие праздники.
  • Сбой работы смартфона. Перезагрузите систему, попробуйте отправить СМС повторно.
  • Неправильно введенный номер. Для надежности сохраняйте номера с кодами международного формата, их и отправляйте.
  • Неправильный номер SMS-центра в памяти SIM-карты. У каждого оператора он свой. В смартфоне откройте список СМС, войдите в «Настройки» – «SMS-центр» или «SMS», поменяйте номер на правильный.
  • Вышла из строя SIM-карта. Возможно, проблема в закислении контактов, тогда потрите карту чистым ластиком.
  • Память смартфона переполнена. Удалите старые СМС, фотографии, ненужные документы.
  • Номер получателя в черном списке. Откройте список контактов, войдите в «Настройки», посмотрите, не заблокирован ли адресат. Заблокировать номер может и оператор связи.
  • Присутствие в СМС нецензурных, запрещенных оператором слов.
  • Отсутствие обновления ПО тоже может вызвать сбой отправки СМС и прочих функций, особенно в дешевых смартфонах. Подключите Wi-Fi, проверьте наличие обновлений.

Полезные советы

Нижеприведенные советы пригодятся неопытным пользователям смартфонов:

  • Системные уведомления раздражают, но отключать их не стоит. В них может быть важная информация для пользователя: предупреждение о низком заряде батареи, указание на ошибки или нехватку памяти.
  • Получив сообщение, обязательно ответьте «Ок» или что-нибудь подобное. Так собеседник поймет, что письмо дошло до адресата.
  • Если необходимо отправить СМС в библиотеке или другом общественном месте, где требуется соблюдение тишины, активируйте беззвучный режим.
  • Каждый раз проверяйте, правильно ли указан адресат в строке «Кому». Ошибка в отправке станет причиной конфуза и недопонимания.
  • Удаленное сообщение можно восстановить. Если оно удалено недавно, то ОС еще его не перезаписала. Для восстановления СМС на смартфоне примените программу Android Data Recovery.

Шаблоны сообщений

Чтобы отправить шаблонное сообщение, войдите в Messages. Откройте «Настройки» – «Быстрое сообщение». Там будет перечень доступных шаблонных фраз. Если хотите добавить что-то свое, нажмите на значок в виде плюса, впишите нужную фразу, сохраните.

Как отправить сообщение нескольким абонентам

Отправить СМС сразу нескольким собеседникам несложно: в строку «Кому» впишите нужные контакты. Либо можно нажать на значок контактов в верхнем правом углу смартфона, тогда откроется список телефонных номеров из вашей телефонной книжки.

Окно приватных сообщений

Если по каким-либо причинам блокировка смартфона сканером отпечатков или иным способом невозможна, то для сокрытия конфиденциальной информации можно воспользоваться приложением Private Message Box.

Для создания приватных СМС:

  • Скачайте приложение в Google Play. Настройте.
  • Перейдите в «Сообщения».
  • Нажмите на «Добавить контакт» внизу справа.
  • Вбейте телефонный номер и имя абонента, переписка с которым должна быть приватной.

Функция поиска

Чтобы найти нужное сообщение, нажмите на поисковую строчку, находящуюся над всеми переписками. Введите поисковую фразу, по ней смартфон покажет все диалоги, в которых присутствует данный текст. Нажмите на нужную переписку, она откроется, в ней поисковая фраза будет подсвеченной.

Операции над списком сообщений – копирование, удаление, пересылка, избранное

Открыв переписку, нажмите, держите до тех пор, пока не выплывет окошко редактирования, в котором можно изменить одно или несколько СМС. Внизу находятся кнопки «Копировать» и «Удалить».

Если ранее созданное сообщение необходимо переслать, то:

  • Нажмите на него, долго держите.
  • Откроется меню. В нем выберите команду «Переслать».
  • Нажмите команду «Отправить».

Последняя кнопка в окошке редактирования, которая называется «Еще», открывает меню, где можно сделать СМС избранным, открыть подробные сведения, сохранить текст на SIM-карте.



Загрузка… Подписаться на наш канал в Яндекс Дзен

Подпишитесь на наши Социальные сети

предыдущая статьяКак выбрать лучшую карту памяти для смартфона

Источник: https://reedr.ru/smartfony/kak-otpravit-sms/

Android – отправка смс

Android отправка смс

В Android вы можете использовать API-интерфейс SmsManager или встроенное приложение SMS для отправки SMS. В этом уроке мы покажем вам два основных примера отправки SMS-сообщения:

SmsManager API

SmsManager smsManager = SmsManager.getDefault();smsManager.sendTextMessage(“phoneNo”, null, “sms message”, null, null);

Встроенное SMS-приложение

Intent sendIntent = new Intent(Intent.ACTION_VIEW);sendIntent.putExtra(“sms_body”, “default content”); sendIntent.setType(“vnd.android-dir/mms-sms”);startActivity(sendIntent);

Конечно, обоим нужно разрешение SEND_SMS .

Помимо описанного выше метода, в классе SmsManager есть еще несколько важных функций. Эти методы перечислены ниже —

Sr.No. Метод и описание
1

ArrayList divMessage (String text)

Этот метод делит текст сообщения на несколько фрагментов, не превышающих максимальный размер сообщения SMS.

2

статический SmsManager getDefault ()

Этот метод используется для получения экземпляра SmsManager по умолчанию

3

void sendDataMessage (String destinationAddress, String scAddress, short destinationPort, byte [] data, PendingIntent sentIntent, PendingIntent deliveryIntent)

Этот метод используется для отправки SMS на основе данных на определенный порт приложения.
4

void sendMultipartTextMessage (String destinationAddress, String scAddress, ArrayList parts, ArrayList sentIntents, ArrayList deliveryIntents)

Отправьте текстовое SMS-сообщение из нескольких частей.

5

void sendTextMessage (String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)

Отправьте текстовое SMS.

ArrayList divMessage (String text)

Этот метод делит текст сообщения на несколько фрагментов, не превышающих максимальный размер сообщения SMS.

статический SmsManager getDefault ()

Этот метод используется для получения экземпляра SmsManager по умолчанию

void sendDataMessage (String destinationAddress, String scAddress, short destinationPort, byte [] data, PendingIntent sentIntent, PendingIntent deliveryIntent)

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

void sendMultipartTextMessage (String destinationAddress, String scAddress, ArrayList parts, ArrayList sentIntents, ArrayList deliveryIntents)

Отправьте текстовое SMS-сообщение из нескольких частей.

void sendTextMessage (String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)

Отправьте текстовое SMS.

пример

В следующем примере показано, как на практике использовать объект SmsManager для отправки SMS-сообщения на указанный номер мобильного телефона.

Чтобы поэкспериментировать с этим примером, вам понадобится настоящее мобильное устройство с новейшей ОС Android, в противном случае вам придется бороться с эмулятором, который может не работать.

шаг Описание
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 .

package com.example.tutorialspoint; import android.Manifest;import android.content.pm.PackageManager;import android.os.Bundle;import android.app.Activity; import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.telephony.SmsManager; import android.util.Log;import android.view.Menu;import android.view.View; import android.widget.Button;import android.widget.EditText;import android.widget.Toast; public class MainActivity extends Activity { private static final int MY_PERMISSIONS_REQUEST_SEND_SMS =0 ; Button sendBtn; EditText txtphoneNo; EditText txtMessage; String phoneNo; String message; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sendBtn = (Button) findViewById(R.id.btnSendSMS); txtphoneNo = (EditText) findViewById(R.id.editText); txtMessage = (EditText) findViewById(R.id.editText2); sendBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { sendSMSMessage(); } }); } protected void sendSMSMessage() { phoneNo = txtphoneNo.getText().toString(); message = txtMessage.getText().toString(); if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.SEND_SMS)) { } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, MY_PERMISSIONS_REQUEST_SEND_SMS); } } } @Override public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_REQUEST_SEND_SMS: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNo, null, message, null, null); Toast.makeText(getApplicationContext(), “SMS sent.”, Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), “SMS faild, please try again.”, Toast.LENGTH_LONG).show(); return; } } } }}

Ниже будет содержание файла res / layout / activity_main.xml

Здесь abc указывает на логотип tutorialspoint

Ниже будет содержимое файла res / values ​​/ strings.xml для определения двух новых констант:

tutorialspoint

Ниже приводится содержимое по умолчанию для 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 smsIntent = new Intent(Intent.ACTION_VIEW);

Intent Object — Данные / Тип для отправки SMS

Для отправки SMS необходимо указать smsto: в качестве URI с помощью метода setData () и тип данных будет vnd.android-dir / mms-sms с помощью метода setType () следующим образом:

smsIntent.setData(Uri.parse(“smsto:”));smsIntent.setType(“vnd.android-dir/mms-sms”);

Intent Object — Дополнительно для отправки SMS

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

smsIntent.putExtra(“address” , new String(“0123456789;3393993300”));smsIntent.putExtra(“sms_body” , “Test SMS to Angilla”);

Здесь address и sms_body чувствительны к регистру и должны указываться только маленькими символами. Вы можете указать более одного числа в одной строке, но разделяя их точкой с запятой (;).

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.