@GuryanovIlya

Как обойти ошибку при выгрузке изображения из БД размером больше 2mb?

Добрый день!
Есть БД sqlite и в ней хранятся картинки с камеры устройства. На каких-то устройствах всё отлично работает при выгрузке их из БД (особенно когда рекурсивный метод написал) а на некоторых вылетает вот такая ошибка:
E/SqliteCursor.cpp: startPos 51 > actual rows 36
E/CursorWindow: Failed to read row 0, column 0 from a CursorWindow which has 0 rows, 3 columns.
Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.

Немного погуглив был найден вроде ответ.
Хранить картинки на устройстве не вариант, так как пользователи могут их подменить, удалить в общем напакосничить.
Пытался играть с параметрами камеры задавая минимальное (camera.getParameters().setPictureSize()) разрешение из доступных в camera.getParameters().getSupportedPictureSizes(), но не помогло.

Не понятно почему можно записать данные а вытащить больше 2mb нельзя.

Может кто-нибудь подсказать как решить эту проблему?

P.S. фотографии синхронизируются с ftp и там у некоторых изображений размер больше 2mb но не больше 3mb.
  • Вопрос задан
  • 338 просмотров
Решения вопроса 1
LeEnot
@LeEnot
Енот-андроид
Вы можете хранить фотографии в защищенном хранилище, в которое есть доступ только у пользователей с root.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
gadfi
@gadfi
https://gamega.org
хранить картинки в бд явно плохая идея, лучше как сказал LeEnot, если паранойя у заказчика сильна (или это реально актуально, что бывает куда реже) можно их шифровать, шифровать по честному может быть долго, поэтому можно просто в начало файла что то дописывать, чтобы файл не читался стандартными программами как картинка
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы