Jun 18, 2011

Sending SMS code snippet of Android


Sending SMS from Android is very simple. I will not go into details regarding sending SMS. Just trying to show you the code.
private void sendSMS(String phoneNumber, String message) {
      String SENT = "SMS_SENT";
       String DELIVERED = "SMS_DELIVERED";
       PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,new Intent(SENT), 0);
       PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,new Intent(DELIVERED), 0);
      
       registerReceiver(new BroadcastReceiver(){
                 @Override
                 public void onReceive(Context arg0, Intent arg1) {
                        switch (getResultCode()){
                                  case Activity.RESULT_OK:
         Toast.makeText(getBaseContext(), "SMS sent",
           Toast.LENGTH_SHORT).show();
         break;
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
         Toast.makeText(getBaseContext(), "Generic failure",
           Toast.LENGTH_SHORT).show();
         break;
        case SmsManager.RESULT_ERROR_NO_SERVICE:
         Toast.makeText(getBaseContext(), "No service",
           Toast.LENGTH_SHORT).show();
         break;
        case SmsManager.RESULT_ERROR_NULL_PDU:
         Toast.makeText(getBaseContext(), "Null PDU",
           Toast.LENGTH_SHORT).show();
         break;
        case SmsManager.RESULT_ERROR_RADIO_OFF:
         Toast.makeText(getBaseContext(), "Radio off",
           Toast.LENGTH_SHORT).show();
         break;
                        }
       }, new IntentFilter(SENT));

      registerReceiver(new BroadcastReceiver(){
   @Override
   public void onReceive(Context arg0, Intent arg1) {
    switch (getResultCode())
    {
        case Activity.RESULT_OK:
         Toast.makeText(getBaseContext(), "SMS delivered",
           Toast.LENGTH_SHORT).show();
         break;
        case Activity.RESULT_CANCELED:
         Toast.makeText(getBaseContext(), "SMS not delivered",
           Toast.LENGTH_SHORT).show();
         break;        
    }
   }
        }, new IntentFilter(DELIVERED));       
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);  
}

1 comment:

  1. Code is working fine, When i send sms to one invalid number and one right number at a time. In This case i am getting sms delivered for both numbers

    ReplyDelete