I would like to delete an SMS from the inbox once it is read by the user. How to do this?
Edit:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String address = null;
if(bundle!=null) {
String info = " ";
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
address=msgs[i].getDisplayOriginatingAddress();
info += msgs[i].getMessageBody().toString();
}
/*String str=bundle.getString("state");
Log.v("State",str);*/
if((PhoneNumberUtils.isWellFormedSmsAddress(address))){ //set ! and address length
//abortBroadcast();
Log.v("phone num","wellformed");
Uri deleteUri = Uri.parse("content://sms");
Cursor c = context.getContentResolver().query(deleteUri, null, null,
null, null);
while (c.moveToNext()) {
try {
// Delete the SMS
String pid = c.getString(0); // Get id;
String uri = "content://sms/conversations/" + pid;
context.getContentResolver().delete(Uri.parse(uri),
null, null);
} catch (Exception e) {
Log.v("exception","occurred");
}
}
}
}
}
}
What is wrong with this code? The sms is not getting deleted