Eliminar un sms de la bandeja de entrada

Me gustaría borrar un SMS de la bandeja de entrada una vez que haya sido leído por el usuario. ¿Como hacer esto?

Editar:

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

}

¿Qué está mal con este código? Los SMS no se eliminan

Puede utilizar el siguiente método para eliminar SMS de Bandeja de entrada,

 private void deleteMessage() { Cursor c = getContentResolver().query(SMS_INBOX, null, null, null, null); //c.moveToFirst(); while (c.moveToNext()) { System.out.println("Inside if loop"); try { String address = c.getString(2); String MobileNumber = mainmenu.getParameterData().getMobileNumber().trim(); //Log.i( LOGTAG, MobileNumber + "," + address ); Log.i( LOGTAG, c.getString(2) ); if ( address.trim().equals( MobileNumber ) ) { String pid = c.getString(1); String uri = "content://sms/conversations/" + pid; getContentResolver().delete(Uri.parse(uri), null, null); stopSelf(); } } catch (Exception e) { e.printStackTrace(); } } } 

Intenta esto para una solución completa para eliminar …

  public void deleteSMS(Context context, String message, String number) { try { Uri uriSms = Uri.parse("content://sms/inbox"); Cursor c = context.getContentResolver().query( uriSms, new String[] { "_id", "thread_id", "address", "person", "date", "body" }, "read=0", null, null); if (c != null && c.moveToFirst()) { do { long id = c.getLong(0); long threadId = c.getLong(1); String address = c.getString(2); String body = c.getString(5); String date = c.getString(3); Log.e("log>>>", "0>" + c.getString(0) + "1>" + c.getString(1) + "2>" + c.getString(2) + "<-1>" + c.getString(3) + "4>" + c.getString(4) + "5>" + c.getString(5)); Log.e("log>>>", "date" + c.getString(0)); if (message.equals(body) && address.equals(number)) { // mLogger.logInfo("Deleting SMS with id: " + threadId); context.getContentResolver().delete( Uri.parse("content://sms/" + id), "date=?", new String[] { c.getString(4) }); Log.e("log>>>", "Delete success........."); } } while (c.moveToNext()); } } catch (Exception e) { Log.e("log>>>", e.toString()); } } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.