0

i am using this code to send sms automatically but is not working ,i am able to send sms by using intent

SmsManager sms = SmsManager.getDefault();
PendingIntent sentPI;
String SENT = "SMS_SENT";           
sentPI = PendingIntent.getBroadcast(this, 0,new Intent(SENT), 0);
sms.sendTextMessage("+91"+"**********", null, "hii param", sentPI, null);           
Toast.makeText(getApplicationContext(), "Your sms sent check your inbox",Toast.LENGTH_LONG).show();
K Neeraj Lal
  • 6,768
  • 3
  • 24
  • 33

3 Answers3

1

Use Permissions in your Android.manifest file like this

<uses-permission android:name="android.permission.SEND_SMS"/>

And then invoke the SmsManager i.e

SmsManager managerForSms = SmsManager.getDefault();
managerForSms.sendTextMessage("Your text message");

Or you may refer to this Stack's question How to send sms in Android. (See accepted Answer)

CandleCoder
  • 1,387
  • 4
  • 21
  • 45
0

Try this code,

public void sendSMS(String phoneNo, String msg){
try {      
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, msg, null, null);    
} 
catch (Exception ex) {
     ex.printStackTrace();
} 
}

And use this permission in your manifest file

 <uses-permission android:name="android.permission.SEND_SMS" />

Update:

Add your country code before pass the phone number

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

Update 2:

Another possible cause for not working

If u are testing this code in dual sim phone then sim slot 1 always keep active otherwise it " no service" error.

reference - https://stackoverflow.com/a/32090923/3879847

Community
  • 1
  • 1
Ranjithkumar
  • 16,071
  • 12
  • 120
  • 159
0

Code Which works for me is this.. Before you need to provide permission in manifest and also need to ask during runtime

   <uses-permission android:name="android.permission.SEND_SMS" />

and in Activity

    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            String number = SMSEditText.getText().toString();
            try {
                SmsManager smsManager = SmsManager.getDefault();
                smsManager.sendTextMessage(number, null, Message, null, null);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });

also if message lenght is greater than 140 or something.. you need to split the message otherwise. it wont work .. which can be acheived by mulitpart text message

Sanoop Surendran
  • 3,484
  • 4
  • 28
  • 49