Убрать ошибку пропущенных звонков в android.database.SQLite
У меня есть следующий код для очистки пропущенных журналов:
ContentValues values = new ContentValues();
values.put(Calls.NEW, 0);
values.put(Calls.IS_READ, 1);
StringBuilder where = new StringBuilder();
where.append(Calls.NEW);
where.append(" = 1 AND ");
where.append(Calls.TYPE);
where.append(" = ?");
context.getContentResolver().update(Calls.CONTENT_URI, values, where.toString(),
new String[]{ Integer.toString(Calls.MISSED_TYPE) });
При запуске этого кода я получаю следующее исключение:
Caused by: android.database.sqlite.SQLiteException: no such column: is_read, while compiling UPDATE logs SET is_read=?, new=? WHERE (new = 1 AND type = ?) AND (logtype = 100 or logtype = 500)
Как это решить?
1 ответ
Решение
Calls.IS_READ
был введен на уровне API 14.
Вам следует установить это значение только в том случае, если API устройства больше или равен 14:
values.put(Calls.NEW, 0);
if (android.os.Build.VERSION.SDK_INT >= 14)
values.put(Calls.IS_READ, 1);