如何在android中清除整个通话记录历史记录?目前我有这个代码只能清除特定的通话记录
public void DeleteCallLogByNumber(String number) {
String queryString="NUMBER="+number;
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,queryString,null);
}
}
答案 0 :(得分:7)
我能够做到这一点,但已经有一段时间了。不确定这是否仍然有效。
getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, null, null) ;
编辑:请注意我不确定平台设计人员是否希望应用能够删除通话记录See this dev blog post。因此,虽然这在技术上有效,但请将此视为一个公平的警告,它可能在任何时候改变并打破您正在尝试构建的内容。
答案 1 :(得分:2)
您无法通过单个API调用删除所有内容。
然而,您可以通过循环遍历它们来逐个删除它们(如评论中所述)。为此,您需要use a Cursor
。请注意:该链接仅会消除少于60秒的通话,因此您必须修改Cursor
创建以删除所有通话。
另请注意:对于API 11+,您应该使用CursorLoader
而不是managedQuery(...)
。
答案 2 :(得分:1)
试试这个:
String queryString="DURATION >= 0";
this.getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, queryString, null);