【问题标题】:How do you clear your call logs history in android?你如何在android中清除你的通话记录历史?
【发布时间】:2012-08-02 22:35:03
【问题描述】:

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

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

【问题讨论】:

  • 不理想,因此评论不是答案,但您始终可以阅读所有通话记录条目并以这种方式删除它们...
  • 试试这个? @Rpc(description = "从通话记录中删除条目") public void deleteAnEntryFromCallLog(String number) { try { Uri CALLLOG_URI = Uri.parse("content://call_log/calls"); mService.getContentResolver().delete(CALLLOG_URI,CallLog.Calls.NUMBER +"=?",new String[]{number}); } 捕捉(异常 e){ e.getMessage(); } }
  • @AlexanderWigmore 不起作用
  • 如果可以删除一个,则可以全部删除。只需查询通话记录以获取所有条目,然后将它们一一删除。

标签: android phone-call calllog


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您无法通过一次 API 调用删除所有内容。

    但是,您可以通过循环遍历它们一个一个地删除它们(如 cmets 中所述)。为此,您需要use a Cursor。请记住:该链接只会清除少于 60 秒的呼叫,因此您必须修改 Cursor 创建以删除所有呼叫。

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

    【讨论】:

      【解决方案3】:

      试试这个:

      String queryString="DURATION >= 0"; 
      this.getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, queryString, null);
      

      【讨论】:

        猜你喜欢
        • 2013-05-04
        • 1970-01-01
        • 2011-11-14
        • 1970-01-01
        • 2017-01-29
        • 1970-01-01
        • 2016-08-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多