Я считаю, что вам нужно передать URI места хранения (файла) через намерение takePictureIntent , используя
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, your_image_Uri);
Затем вы можете открыть файл и извлечь его в байт [] и сохранить его в виде большого двоичного объекта. Удобство SQLiteDatase, insert метод делает это очень простым.
например. при условии, что байт [] имеет имя my_picture, тогда
ContentValues cv = new ContentValues();
cv.put(column_name_for_picture,my_picture);
long id = insert("the_table_name",null,cv);
Вы извлекаете сохраненную картинку из базы данных, используя базу данных SQLiteDatabase , запрос , метод , а затем извлекаете байт [], используя метод getBlob курсора.
Тем не менее
Если размер изображения составляет 2 МБ или больше, , вы не сможете его получить , поскольку для CursorWindow существует ограничение в 2 МБ (1 МБ для более старых версий Android). Я бы предположил, что даже на 1 МБ у вас могут возникнуть проблемы с получением изображений.
Рекомендуется не хранить изображение в базе данных, а сохранять путь к файлу, в котором изображение хранится в базе данных.
Возможно, вы захотите взглянуть на Как использовать изображения в Android SQLite, размер которых превышает ограничения CursorWindow? , так как это показывает обходной путь , хотя НЕ рекомендуется .