Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delete SMS in Android 1.5

Tags:

java

android

sms

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()) });
like image 233
Dmytro Avatar asked Feb 02 '10 11:02

Dmytro


1 Answers

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.

like image 51
Dmytro Avatar answered Sep 30 '22 16:09

Dmytro