Для загрузки изображений в
WebView был написан кастомный контент-провайдер, который переопределяя метод
openFile, должен возвращать байт-поток бинарного контента изображения.
Однако, возникла следующая загвоздка.
openFile возвращает
ParcelFileDescriptor, который можно получить вызвав
ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
Где
file есть ни что иное, как экземпляр класса
File.
Я же имею массив байт (
byte[]) — бинарный контент изображений. По условиям ТЗ, не допускается использование временных файлов. Таким образом, необходимо либо создать in-memory
File, без сохранения на SD карту, либо получить
ParcelFileDescriptor иным способом.
Поиском по гуглу и developer.android.com был слеплен следующий код:
byte[] imageData = ...;
Parcel parcel = Parcel.obtain();
parcel.writeByteArray(imageData, 0, imageData.length);
return parcel.getFileDescriptor();
Метод отрабатывает успешно, исключений не выкидывает. Но
parcel.getFileDescriptor() возвращает
null.
Какие могут быть способы решения данной задачи?