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
 
     
    