Java 如何在android中删除特定联系人号码的所有短信
我有以下删除所有短信对话的代码Java 如何在android中删除特定联系人号码的所有短信,java,android,Java,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
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;
但是我想删除特定联系人号码的短信,怎么办?您可以使用
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();
}
这个方法是删除我的会话列表中的最后一个会话在Android中,只有一个消息线程为特定用户维护,所以最后一个会话也包括所有以前的消息。我说,如果我有两个2号的会话,那么这对最后一个数目的会话有效。如果我给定的号码位于对话列表的最后一个位置,那么它将根据以下代码工作:int ThreadId=cursor.getInt(1);Log.d(“线程Id”,线程Id+“Id-”+游标.getInt(0));如果ThreadId位于cursor.getInt(1),那么为什么在下一行使用curson.getInt(0)记录它