BroadcastReciever doesn't show SMS not Send or Not delivered
Posted
by
user1657111
on Stack Overflow
See other posts from Stack Overflow
or by user1657111
Published on 2012-09-08T18:34:31Z
Indexed on
2012/09/08
21:38 UTC
Read the original article
Hit count: 202
While using broadcastreciver for checking sms status, it shows the toast when sms is sent but shows nothing when sms is not sent or delivered (im testing it by putting an abrupt number). the code im using is the one ive seen the most on every site of checking sms delivery status. But my code is only showing the status when sms is sent successfully. Can any one get a hint of what am i doing wrong ? I hav this method in doInBackground() and so obviously im using AsyncTask. Thanks guys
public void send_SMS(String list, String msg, AtaskClass task) { String SENT = "SMS_SENT"; String DELIVERED = "SMS_DELIVERED";
SmsManager sms = SmsManager.getDefault();
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
//---when the SMS has been sent---
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent arg1) {
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(context, "SMS sent",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE: Toast.makeText(context, "Generic failure", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(context, "No service",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(context, "Null PDU",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(context, "Radio off",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(SENT));
//---when the SMS has been delivered---
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent arg1) {
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(context, "SMS delivered",
Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(context, "SMS not delivered",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(DELIVERED));
StringTokenizer st = new StringTokenizer(list,",");
int count= st.countTokens();
int i =1;
count = 1;
while(st.hasMoreElements())
{
// PendingIntent pi = PendingIntent.getActivity(this,0,new Intent(this, SMS.class),0);
String tempMobileNumber = (String)st.nextElement();
//SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(tempMobileNumber, null, msg , sentPI, deliveredPI);
Double cCom = ((double)i/count) * 100;
int j = cCom.intValue();
task.doProgress(j);
i++;
count ++;
}
// class ends
}
© Stack Overflow or respective owner