2

I am working on a project that can send sms. I have tested the app using two emulator by sending sms from one and receiving it from other emulator.

However I want to show toast if the sms is not sent successfully. But i cannot test it in emulator. If i send sms to a random number which is not the number of my receiver emulator, the sms is still sent successfully. So I am always seeing the message "SMS is sent".

Here is my broadcast receiver code:

sentReceiver = new BroadcastReceiver(){
          @Override
          public void onReceive(Context arg0, Intent arg1) {

            Utils.print("in sentreceiver onreceive");  
            Utils.print(getResultCode()+"");

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

    deliveredReceiver = new BroadcastReceiver(){
          @Override
          public void onReceive(Context arg0, Intent arg1) {

              Utils.print("in deliverreceiver onreceive");

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

 // Receiver for Sent SMS.
    registerReceiver(sentReceiver, new IntentFilter(Constants.ACTION_SMS_SENT));

    // Receiver for Delivered SMS.
    registerReceiver(deliveredReceiver, new IntentFilter(Constants.ACTION_SMS_DELIVERED));

0 Answers0