该错误通常是由于查询语句错误或权限问题引起的。对于查询语句错误,请确保查询语句正确,并且包含符合条件的表和列名。对于权限问题,请检查是否已经获得了读取通话记录的权限,并在AndroidManifest.xml文件中添加以下代码:
确保已在设备上重新启动应用程序以使更改生效。如果仍然存在问题,请尝试以下代码示例:
Cursor cursor = context.getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
do {
String number = cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER));
Log.d("CallLog Number:",""+number);
} while (cursor.moveToNext());
cursor.close();
}
此示例检索通话记录并在控制台中打印它们的电话号码。确保在Manifest文件中添加所需的权限并替换“context”变量。