smsManager.sendTextMessage не работает

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

Любые предложения?

 private Runnable SMSRunnable = new Runnable()
 {
     public void run()
     {      
         smsManager = SmsManager.getDefault();

        smsNumber = edittextSmsNumber.getText().toString();
        smsText = edittextSmsText.getText().toString();


        smsManager.sendTextMessage(smsNumber, smsNumber, smsNumber , null, null);

     }
 };
 ND2731 мар. 2016 г., 08:02
Вы пробовали это на реальном устройстве, у меня это работает. smsManager = SmsManager.getDefault (); smsManager.sendTextMessage (getPhoneNumber (), null, getString (R.string.message), null, null);

Ответы на вопрос(4)

На самом деле это работает для меня:

String messageText = "...YOUR TEXT HERE...";
SmsManager sm = SmsManager.getDefault();
sm.sendTextMessage("PHONE NUMBER HERE", null, messageText, null, null);

Просто чтобы быть уверенным, с этим вы не найдете сообщение, отправленное в вашей истории сообщений.

потом понял, что могу просто добавить код страны. Для меня добавление "+91" до того, как телефонный номер работал как чемпион.

String phnNumber="+91"+editText.getText().toString();
 Napolean11 сент. 2017 г., 12:21
Я также столкнулся с подобным сценарием NPE, но проблема с моей стороны была из-за неправильного номера телефона. Поэтому вы также должны проверить, был ли номер телефона правильным или нет.
 mehmet20 сент. 2017 г., 09:36
простой и полезный, ему не нужно PendingIntent для получения смс

PendingIntent pi = PendingIntent.getActivity(this, 0,
        new Intent(this, Next.class), 0); 
//Next is the class to move when message sent
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("phno", null, "message", null, null);
Решение Вопроса

Попробуй это

SmsManager sms = SmsManager.getDefault();
PendingIntent sentPI;
String SENT = "SMS_SENT";

sentPI = PendingIntent.getBroadcast(this, 0,new Intent(SENT), 0);

sms.sendTextMessage(phoneNumber, null, message, sentPI, null);
 Rhys25 мая 2012 г., 12:32
Это сработало. Если не возражаете, не могли бы вы объяснить, почем
 Raghu Nagaraju25 мая 2012 г., 12:43
етод @sendTextMessage () отправляет SMS-сообщение с объектом PendingIntent.PendingIntent, который используется для определения цели, которая будет вызвана позднее. Также мы можем отслеживать состояние процесса отправки SMS-сообщени

Ваш ответ на вопрос