如何从应用程序中删除/删除通话记录.我这样做
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,null,null);
Run Code Online (Sandbox Code Playgroud)
它不起作用.
ρяσ*_*я K 18
确保您拥有以下权限Manifest.xml:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
Run Code Online (Sandbox Code Playgroud)
要删除特定号码的通话记录,请尝试以下方式:
public void DeleteCallLogByNumber(String number) {
String queryString = "NUMBER=" + number;
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI, queryString, null);
}
Run Code Online (Sandbox Code Playgroud)
小智 10
现有解决方案不会删除带有0或+前缀的数字.为了适用于所有电话号码,需要将号码放在单引号中,如下所示:
String queryString = "NUMBER='"+numberToDelete+"'";
context.getContentResolver().delete(CallLog.Calls.CONTENT_URI, queryString, null);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
小智 6
接受的答案将删除来自通话记录的特定号码的所有呼叫.如果要删除唯一的单个调用,可以通过将CallLogId传递给该函数并运行此查询来完成.
public void DeleteCallById(String idd) {
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,CallLog.Calls._ID + " = ? ",
new String[] { String.valueOf(idd) });
}
Run Code Online (Sandbox Code Playgroud)
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
Run Code Online (Sandbox Code Playgroud)
您只需要授予此权限即可使用此方法:
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI, null, null);
Run Code Online (Sandbox Code Playgroud)
它非常适合我。我已经在运行 Kitkat 4.4.2 的 Moto-G 和带有 Jelly Bean 4.1 的 Samsung Note 上对其进行了测试。
| 归档时间: |
|
| 查看次数: |
12528 次 |
| 最近记录: |