【发布时间】:2015-06-03 03:04:57
【问题描述】:
我正在尝试删除某些选定号码的通话记录,代码将在模拟器和其他两个设备(Q-Mobile A500 和索尼爱立信 X10i)上成功运行并获得所需的结果,我可以在 HTC 上进行客户端测试时进行测试它不工作
这是我的代码
String num, queryString = null;
number = number.replace(" ", "");
number = number.replace("-", "");
if (number.length() > 10) {
num = number.substring(number.length() - 10, number.length());
queryString = " LIKE '%" + num + "%'";
} else {
queryString = "=" + number;
}
// String queryString = "NUMBER=" + number;
Uri allCalls = Uri.parse("content://call_log/calls");
context.getContentResolver().delete(allCalls,
android.provider.CallLog.Calls.NUMBER + queryString, null);
context.getContentResolver().delete(
android.provider.CallLog.Calls.CONTENT_URI,
android.provider.CallLog.Calls.NUMBER + queryString, null);
我试图删除两个查询结果相同,但它不能在 HTC one 上工作
【问题讨论】:
-
您在查询 url 时看到一些结果吗?有没有过滤器?
-
@flx 没有过滤器我没有测试,而过滤器我看到通话记录被删除了
-
“它不能在 HTC one 上工作”——这不是对您症状的有用描述。你在崩溃吗?如果是这样,请发布堆栈跟踪。另外,为什么要硬编码
Uri,而不是使用CallLog中的CONTENT_URI(因为HTC 可能已经移动了它)?另外,由于没有要求调用日志由 SQL 数据库支持,是什么让您认为LIKE将是一个可靠的选择? -
@CommonsWare 我同时使用了硬编码和 CONTENT_URI 都有相同的结果,而我检查了它也由 sql 数据库支持
-
那么,你是说你闯入了每个 Android 设备制造商的办公室,检查了他们对 Android 的更改,看看他们是如何处理通话记录的?毕竟,欢迎他们更改呼叫日志的实现,就像他们更改主屏幕的实现一样。
标签: java android android-contentprovider