尝试使用号码删除整个对话,如下所示:
mContext.getContentResolver().delete(Uri.parse("content://sms/"),"address="+Number, null);
但是什么也没发生,没有强制关闭并且没有删除,有什么帮助吗?,
谢谢
最佳答案
您需要分两步完成。像这样的东西:
A.通过地址查询短信数据库,获取您的短信消息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);
}
B.使用消息 ID 删除短信:
getContentResolver().delete(Uri.parse("content://sms/" + messageid), null, null);
现在,进行多次删除。当您报告多重删除失败时
使用游标迭代(whilecursor.moveToFirst()
)。我从未尝试过,但我认为
与删除后光标失效有关。尝试在每次删除之前重新启动光标,如下所示:
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"/>
关于android - 删除短信对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24870824/