5

如何清除android中的整个通话记录历史?目前我有这个代码只能清除特定的通话记录

public void DeleteCallLogByNumber(String number) {   
    String queryString="NUMBER="+number; 
    this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,queryString,null);
    }  
}
4

3 回答 3

7

我能够做到这一点,虽然已经有一段时间了。不确定这是否仍然有效。

getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, null, null) ;

编辑:请注意,我不确定平台设计者是否打算让应用程序能够删除通话记录,请参阅此开发博客文章。因此,尽管这在技术上确实有效,但请将此视为一个公平的警告,它可能在任何时候改变并破坏您正在尝试构建的内容。

于 2012-08-02T23:06:57.650 回答
2

您无法通过单个 API 调用删除所有内容。

但是,您可以通过循环全部删除它们(如评论中所述)。为此,您需要使用Cursor. 请记住:该链接只会消除少于 60 秒的呼叫,因此您必须修改Cursor创建以删除所有呼叫。

另请注意:对于 API 11+,您应该使用CursorLoader而不是managedQuery(...).

于 2012-08-02T22:52:05.770 回答
1

试试这个:

String queryString="DURATION >= 0"; 
this.getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, queryString, null);
于 2012-08-02T23:11:34.703 回答