В 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 есть еще несколько важных функций. Эти методы перечислены ниже –
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.
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, в противном случае вам придется бороться с эмулятором, который может не работать.
Как бесплатно отправлять sms с компьютера
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 .
Здесь 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 чувствительны к регистру и должны указываться только маленькими символами. Вы можете указать более одного числа в одной строке, но разделяя их точкой с запятой (;).
пример
В следующем примере показано, как с помощью объекта 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 .
Здесь abc указывает на логотип tutorialspoint
Ниже будет содержимое файла res / values / strings.xml для определения двух новых констант:
tutorialspoint
Ниже приводится содержимое по умолчанию для AndroidManifest.xml –
Давайте попробуем запустить ваше приложение tutorialspoint . Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Перед запуском приложения Android Studio отобразит следующее окно, чтобы выбрать опцию, в которой вы хотите запустить приложение Android.
Выберите мобильное устройство в качестве опции, а затем проверьте свое мобильное устройство, которое отобразит следующий экран –
Теперь используйте кнопку « Создать SMS» для запуска встроенных в Android клиентов SMS, как показано ниже:
Вы можете изменить любое из указанных полей по умолчанию и, наконец, использовать кнопку «Отправить SMS», чтобы отправить свое SMS указанному получателю.
Источник: coderlessons.com
Как отправить sms из программы
Для отправки смс используется константа Intent.ACTION_SEND . Создадим простейший интферфейс для отправки смс:
И определим обработчик кнопки в коде activity:
После ввода номера телефона и сообщения нажмем на кнопку отправки, и система нам предоставит выбор между имеющимися программами для отправки сообщений. В моем случае это встроенная программа отправк смс и скайп.
После выбора программы можно будет подредактировать и уже потом окончательно отправить сообщение:
Но как и с телефоном мы также можем использовать прямую отправку смс без сторонних программ. Для этого, во-первых, добавим разрешение SEND_SMS в файл манифеста:
Исправим код обработчика кнопки:
public void dial(View v)
Для отправки используется класс SmsManager из пакета android.telephony. Его статический метод getDefault() возвращает объект данного класса. Для самой отправки применяется метод sendTextMessage() , который принимает пять параметров: номер телефона, адрес сервисного центра (в данном случае null), сообщение к отправке и два спецальных объкта PendingIntent, которые показывают статус отправки и доставки (в данном случае также null).
Источник: metanit.com
Как отправить СМС в Java?
В данном уроке я научу вас отправлять СМС сообщения на java, обратите внимания, что отправить СМС сообщение бесплатно нельзя.
Не так давно у меня возникла неплохая идея, но для её реализации мне нужно было найти способ отправки СМС в Java.
Я начал искать и выяснилось, что бесплатно это сделать нельзя. Хоть это и так понятно я все же решил поискать. После того как я понял что бесплатного способа не существует, решил найти платный но не очень дорогой и качественный, и вот несколько часов поиска привели меня к сервису, который на мое мнение неплохой как по ценам так и по отзывам.
Сервис который я нашел называется СМСЦЕНТР.
И сейчас я покажу как с его помощью можно отправлять СМС сообщения.
Шаг 1
Первое что мы делаем это идем сюда и регистрируемся.
После чего заполняете регистрационную форму.
Шаг 2
После регистрации вы попадете в админку, где вам нужно зайти Мой кабинет и выбрать пункт Получить 3.95 грн на счет для тестирования:
Выбираем -> Для получения тестовой суммы введите номер телефона в Настройках:
После этого сохраняем и выбираем Подтвердить номер.
Вам на телефон придет СМС сообщение, где будет код подтверждения. Вводим его в поле.
После подтверждения обновляем страницу и видим:
Теперь у нас есть денежные средства для тестирование этого сервиса.
Шаг 3
Создаем в Intellij IDEA новый проект File->New project->Maven Project.
Создаем класс Main и метод main().
Шаг 4
Теперь разберем как использовать API сервиса.
Давай теперь познакомимся с предоставляемым API http://smsc.ru/api/java/
Скачиваем smsc_api.java и кидаем в ваш проект src/main/java/smsc_api.java
Я его переименновал на SMSCSender.java
А также я немного изменил этот файл, так как видно по названием и типу написания, что писал API не Java программист и вот, что получилось:
После этого можно добавить ваши данные в данное API:
String SMSC_LOGIN = «demotest»; // логин клиента String SMSC_PASSWORD = «»; // пароль или MD5-хеш пароля в нижнем регистре boolean SMSC_HTTPS = false; // использовать HTTPS протокол String SMSC_CHARSET = «utf-8»; // кодировка сообщения: koi8-r, windows-1251 или utf-8 (по умолчанию) boolean SMSC_DEBUG = false; // флаг отладки boolean SMSC_POST = true; // Использовать метод POST
Но это не обязательно, так как все это можно про инициализировать с помощью конструктора:
SMSCSender sd= new SMSCSender(«demotest», «demotest», «utf-8», true);
Шаг 5
public class Main < public static void main(String[] args) < SMSCSender sd= new SMSCSender(«», «», «utf-8», true); sd.sendSms(«38*********5», «Ваш пароль: 123», 1, «», «», 0, «», «»); sd.getSmsCost(«38*********5», «Вы успешно зарегистрированы!», 0, 0, «», «»); sd.getBalance(); > >
После выполнения данного кода мы увидим в консоли:
СМС пришло в течении 3 сек.
Источник: devcolibri.com