Java. Android. Написание контент-провайдера для WebView?

Для загрузки изображений в 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.


Какие могут быть способы решения данной задачи?
  • Вопрос задан
  • 3216 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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