2012-05-19 92 views
0

我有以下的代码,删除所有的短信对话,如何删除特定联系人号码的所有短信的Android

Uri inboxUri = Uri.parse("content://sms/conversations"); 
int count = 0; 
Cursor c = context.getContentResolver().query(inboxUri , 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; 

但我想删除特定联系人号码的短信,怎么办?

+0

谁能帮助吗? –

回答

2

您可以通过删除特定号码的所有短信,

private void removeMessage(Context context, String fromAddress) { 

    Uri uriSMS = Uri.parse("content://sms/inbox"); 
    Cursor cursor = context.getContentResolver().query(uriSMS, null, 
                   null, null, null); 
    cursor.moveToFirst(); 
     if(cursor.getCount() > 0){ 
     int ThreadId = cursor.getInt(1); 
     Log.d("Thread Id", ThreadId+" id - "+cursor.getInt(0)); 
     Log.d("contact number", cursor.getString(2)); 
     Log.d("column name", cursor.getColumnName(2)); 

     context.getContentResolver().delete(Uri. 
       parse("content://sms/conversations/"+ThreadId), "address=?", 
                 new String[]{fromAddress}); 
     Log.d("Message Thread Deleted", fromAddress); 
     } 
     cursor.close(); 
} 
+0

这不起作用:( –

+0

这种方法正在删除我的对话列表中的最后一个对话 –

+0

在Android中,对于特定用户只有一个单独的消息线程维护,所以最后一个对话也包含了之前的所有消息 –

相关问题