Андроид отправка SMS сообщении
Есть база номеров моих постоянных клиентов. Я хотел написать приложение, которое может отправлять им SMS сообщения с моего номера. Как реализуется отправка сообщении в Андроид?
Отслеживать
2,178 12 12 серебряных знаков 17 17 бронзовых знаков
задан 13 дек 2016 в 13:58
yoralbayev yoralbayev
21 5 5 бронзовых знаков
@yoralbayev Все, как всегда банально. Если ты решил, что-либо запилить, значит кто-то это уже сделал, ну по крайней мере попытался или делает до сих пор. Необходимо просто найти его, этого некто. Вот например хороший пример.
13 дек 2016 в 14:20
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Чтобы отправить текстовое сообщение из приложения, в файл манифеста нужно добавить разрешение android.permission.SEND_SMS и затем воспользоваться классом android.telephony.SmsManager .
private void sendSmsMessage(String address, String message) throws Exception
Параметры метода означают следующее: address — адрес получателя SMS-сообщения (его телефонный номер), message — текст смс-сообщения.
Как отправить sms с помощью contentresolver android
Спасибо! Ваши отзывы помогают другим пользователям находить самую полезную информацию.
*Мы сожалеем, что это не было полезным для вас. Можем ли мы что-то улучшить? Введите здесь свой комментарий.
Устройства
- Общие сведения о компании
- ESG
- Инвестирование
- Политика конфиденциальности
- Безопасность продуктов
- Вакансии
© 2011-2023 HTC Corporation
Как отправить sms с помощью contentresolver android
Для отправки смс используется константа Intent.ACTION_SEND . Создадим простейший интферфейс для отправки смс:
И определим обработчик кнопки в коде activity:
package com.example.eugene.telephoneapp; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.content.Intent; import android.view.View; import android.widget.EditText; import android.net.Uri; public class MainActivity extends ActionBarActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); >public void smsSend(View v) < EditText number=(EditText)findViewById(R.id.number); EditText message=(EditText)findViewById(R.id.message); String toSms="smsto:"+number.getText().toString(); String messageText= message.getText().toString(); Intent sms=new Intent(Intent.ACTION_SENDTO, Uri.parse(toSms)); sms.putExtra("sms_body", messageText); startActivity(sms); >>
После ввода номера телефона и сообщения нажмем на кнопку отправки, и система нам предоставит выбор между имеющимися программами для отправки сообщений. В моем случае это встроенная программа отправк смс и скайп.
После выбора программы можно будет подредактировать и уже потом окончательно отправить сообщение:

Но как и с телефоном мы также можем использовать прямую отправку смс без сторонних программ. Для этого, во-первых, добавим разрешение SEND_SMS в файл манифеста:
Исправим код обработчика кнопки:
public void dial(View v)
Для отправки используется класс SmsManager из пакета android.telephony. Его статический метод getDefault() возвращает объект данного класса. Для самой отправки применяется метод sendTextMessage() , который принимает пять параметров: номер телефона, адрес сервисного центра (в данном случае null), сообщение к отправке и два спецальных объкта PendingIntent, которые показывают статус отправки и доставки (в данном случае также null).
Способы отправки SMS эмулятору Android в Windows
Отправка SMS эмулятору Android через Dalvik Debug Monitor Server в Eclipse
Команда разработчиков учла необходимость отправки Сообщений эмулятору, и поэтому в Dalvik Debug Monitor Server’е есть простейшее окно Emulator Control, где все понятно и просто

Проблема может возникнуть только в том, что по умолчанию это окно не отображается:
Window — Show View — Other… — Android / Emulator Control
Посредством двух эмуляторов
Отправка SMS эмулятору Android через другой эмулятор Android
1. Запускаем два эмулятора Android
2. Открываем приложение Сообщения в одном из них
3. Отправляем наше сообщение на адрес порта второго эмулятора(адрес вы можете посмотреть на заголовке окна эмулятора, или во вкладке Devices)
4. Получаем сообщение вторым эмулятором
Посредством службы Telnet (самый медленный)
Отправка SMS эмулятору Android(только в Windows?) через Telnet
Поискав, я сразу наткнулся на такой совет:
1. Откройте консоль
2. Подключитесь через telnet к активному эмулятору: telnet localhost 5554 (Вы можете найти номер на заголовке окна запущенного эмулятора)
3. Введите это: sms send исходящийНомер текстСообщения
Попробовал — не работает, не находит службу telnet
Включение службы telnet в Windows 7
Пуск — Панель управления — Программы и компоненты — Включение или отключение компонентов Windows — Клиент Telnet (ставим галочку)

или, если этот способ Вам не подходит/не работает, то можно провернуть данную операцию через консоль:
dism /online /Enable-Feature /FeatureName:TelnetClient
, если список компонентов пуст: правим реестр
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows
(для параметра CSDVersion вместо «200» поставить «0»)
Включение службы telnet в Windows XP
Как подсказывает хабраюзер aivus: в ХР клиент по умолчанию включен, иначе — так же, через компоненты, как и в 7-ке
Отправляем сообщение
1. Открываем командную строку
2. Вводим: (подключаемся к активному эмулятору Android)
telnet localhost ****
, где вместо **** — номер порта эмулятора Android(Вы можете найти номер на заголовке окна запущенного эмулятора)
3. Вводим:
sms send *номерОтправителяСообщения* *текстСообщения*

4. Видим что-то такое:
