删除短信对话 [英] Delete a SMS Conversation
问题描述
试图用数字,像这样删除整个谈话:
Trying to Delete the whole Conversation by using the Number, like this :
mContext.getContentResolver().delete(Uri.parse("content://sms/"),"address="+Number, null);
但没有发生,没有任何力量关闭和放大器;它没有被删除,任何帮助?
But Nothing Happen,No Force Close & its not Deleted, any Help ?,
感谢
推荐答案
您需要做的两个步骤。是这样的:
You'll need to do it in two steps. something like this:
A 按地址Queary SMS数据库,以获得您的SMS的消息ID:
A. Queary SMS database by address to obtain your SMS's message id:
String numberFilter = "address='"+ phoneNumber + "'";
String messageid = null;
Cursor cursor = mContext.getContentResolver().query(Uri.parse("content://sms/"),
null, numberFilter, null, null);
if (cursor.moveToFirst()) {
messageid = cursor.getString(0);
}
乙使用消息id删除短信:
B. Delete SMS using message id:
getContentResolver().delete(Uri.parse("content://sms/" + messageid), null, null);
结果
现在,多个缺失。你报多删除失败,当你
使用光标迭代(而cursor.moveToFirst())。我从来没有尝试过,但我认为
它是与光标之后删除无效。
尝试,而不是之前的每个删除,重新启动光标,像这样:
Now, for multiple deletions. You reported multi-deletion failed when you use cursor iteration (while cursor.moveToFirst()). I never tried it but I assume It has something to do with cursor invalidated after delete. Try instead to restart the cursor before each delete, something like this:
for (;;) {
// restart cursor before each delete
String messageid = null;
Cursor cursor = mContext.getContentResolver().query(Uri.parse("content://sms/"),
null, numberFilter, null, null);
if (!cursor.moveToFirst()) {
break; // nothing more to delete
}
// delete single record
messageid = cursor.getString(0);
getContentResolver().delete(Uri.parse("content://sms/" + messageid), null, null);
}
您将需要写短信权限:
<uses-permission android:name="android.permission.WRITE_SMS"/>
这篇关于删除短信对话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!