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 ?,
Thanks
You'll need to do it in two steps. something like this:
A. Query 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);
}
B. Delete SMS using message id:
getContentResolver().delete(Uri.parse("content://sms/" + messageid), null, null);
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);
}
You will need write SMS permission:
<uses-permission android:name="android.permission.WRITE_SMS"/>