Rhys
Rhys

Reputation: 2877

smsManager.sendTextMessage is not working

I have the below event to send sms programatically. However is doens't seem to work, the toast pop up appears and there is no entry in logcat, just no message is created. I have also added the appropriate permissions to manifest file.

Any suggetsions?

 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);

     }
 };

Upvotes: 10

Views: 25400

Answers (4)

hacker
hacker

Reputation: 8947

This is what works for me:

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);

Upvotes: 1

Justcurious
Justcurious

Reputation: 2299

I spent lots of time then I figured out that I could just prepend the country code. For me prepending "+91" before the phone number worked like a champ.

String phnNumber="+91"+editText.getText().toString();

Upvotes: 3

Davide Lorenzi
Davide Lorenzi

Reputation: 348

Actually this is working for me:

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

Just to be sure, with this you will not find the message sent in your message history.

Upvotes: 1

Raghu Nagaraju
Raghu Nagaraju

Reputation: 3288

Try this.

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);

Upvotes: 12

Related Questions