删除短信对话 [英] Delete a SMS Conversation

查看:212
本文介绍了删除短信对话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

试图用数字,像这样删除整个谈话:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆