Существует ограничение в 1 МБ для внутренних активов из-за динамической декомпрессии; ограничение в 1 МБ> также применимо к BLOB-объектам курсора, но это, похоже, нигде не задокументировано.
Как правило, в SQLite следует избегать больших двоичных объектов, поскольку они плохо работают; вместо этого> сохраните данные большого двоичного объекта как файл и сохраните местоположение файла в вашей БД
Я не рекомендую хранить pdf-файлы в SQLite, вы можете просто предоставить простую ссылку, чтобы загрузить их пользователю. но если вы хотите сохранить его здесь, вы можете сделать что-то вроде этого.
Во-первых, вам нужно преобразовать файл PDF в байтовый массив
import java.nio.file.*;
Path pdfFilePath = Paths.get("/file/path/your_file.pdf");
// Read file to byte array
byte[] pdfByteArray = Files.readAllBytes(pdfFilePath );
// Write byte array to file
Files.write(pdfFilePath , pdfByteArray);
Вы ищете BLOB для хранения данных в Android SQLite.
BLOB - значение представляет собой блок данных, сохраняемый в точности так, как он был введен.
Вот пример создания таблицы с двумя столбцами - идентификатором и некоторыми данными, которые являются BLOB:
просто для примера, вы можете создать такую таблицу
CREATE TABLE t1 (id INTEGER PRIMARY KEY, data BLOB);