从收件箱中删除短信

时间:2013-08-31 09:00:56

标签: android android-contentresolver

您好我正在开发一个Android短信应用程序,我正在使用以下代码删除基于_id的邮件:

 getContentResolver().delete(Uri.parse("content://sms/" + id),"address=? and date=?",null);

这在某些手机上运行正常。但在三星手机上,最旧的消息将被删除。而且我不希望这种情况发生。我想在触摸时删除特定的短信。我该怎么做。 请帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

你可以用这个:

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

或者你可以使用它:

getContentResolver().delete(Uri.parse("content://sms/conversations/" + pid), null, null);

你应该检查一下:

if(cursor.getCount>0){
  getContentResolver().delete(Uri.parse("content://sms/conversations/" + pid), null, null);
}