Skip to content
Advertisement

Delete SMS in Android 1.5

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

Advertisement

Answer

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

Reminder: Using catch(Exception) is not recommended.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement