如何在android中以编程方式从收件箱中删除所有短信?

Posted

技术标签:

【中文标题】如何在android中以编程方式从收件箱中删除所有短信?【英文标题】:How to delete all sms from inbox programmatically in android? 【发布时间】:2012-03-15 15:32:03 【问题描述】:

我正在开发一个应用程序,我想在其中删除收件箱中的所有 SMS。 为此,我使用了以下代码。

Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = getContentResolver().query(uriSms, null,null,null,null); 
int id = c.getInt(0);
int thread_id = c.getInt(1); //get the thread_id
getContentResolver().delete(Uri.parse("content://sms/conversations/" + thread_id),null,null);

此代码不起作用。 有没有办法做同样的事情?

【问题讨论】:

***.com/questions/419184/… 【参考方案1】:

删除的uri是"content://sms/" + id;

Uri inboxUri = Uri.parse("content://sms/inbox");
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;

【讨论】:

这是针对单个消息还是转换? 这也会删除所有彩信吗? 这将是收件箱中的所有短信【参考方案2】:
//delete all call logs
Uri callLog = Uri.parse("content://call_log/calls");
int rs1 = getContentResolver().delete(callLog, null, null);

//delete all sms
Uri inboxUri = Uri.parse("content://sms/");       
int rs2 = getContentResolver().delete(inboxUri, Sms._ID + "!=?", new String[]"0");

【讨论】:

以上是关于如何在android中以编程方式从收件箱中删除所有短信?的主要内容,如果未能解决你的问题,请参考以下文章

如何启动消息应用程序并在颤动中以编程方式使用默认电子邮件地址设置“收件人”字段(目的地)?

在 Android 中以编程方式从启动器中删除应用程序

如何在iOS中以编程方式从UIButton中删除等宽约束

如何在 Swift 中以编程方式从 UIView 中删除安全区域?

如何在 Android 中以编程方式将图像文件从图库复制到另一个文件夹

如何在 Android 中以编程方式更改应用程序图标?