how to send sms automatically in android

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

Upvotes: 0

Views: 2048

Answers (3)

CandleCoder
CandleCoder

Reputation: 1503

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)

Upvotes: 1

Sanoop Surendran
Sanoop Surendran

Reputation: 3486

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

Upvotes: 0

Ranjithkumar
Ranjithkumar

Reputation: 18386

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

Upvotes: 0

Related Questions