There are many questions about it, no answers are working in my application :(
I need to remove SMS from a receiver, even if the user can see it, but it must be removed programmatically.
How can I do it?
The most suitable I have used was the following, but it doesn't work :(
context.getContentResolver().delete(
deleteUri,
"address=? and date=?",
new String[] { msg.getOriginatingAddress(),
String.valueOf(msg.getTimestampMillis()) });
After refactoring my code I found that next solution works:
private int deleteMessage(Context context, SmsMessage msg) {
Uri deleteUri = Uri.parse("content://sms");
int count = 0;
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/" + pid;
count = context.getContentResolver().delete(Uri.parse(uri),
null, null);
} catch (Exception e) {
}
}
return count;
}
Thanks everyone for help!
ps if this code is useful for some one - remember that catch(Exception) is not good.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With