Возвращая карту памяти InputStream от поставщика контента?

На клиентской стороне потребителя контент-провайдера я могу сделать что-то вроде этого, чтобы получить правильный InputStream для чтения картинки:

InputStream is = getContentResolver().openInputStream(pictureUri);

Это хороший API, и на стороне сервера фактический поставщик контента приведет к вызову:

public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
  // Open a proper ParcelFileDescriptor, most likely using openFileHelper(uri, mode)
}

Но что, если изображение, сопоставленное с URI, находится не в файловой системе, а как ресурс памяти или не создается на лету.

Могу ли я создать карту памятиFile или жеInputStreamили что-то еще, так что мне не нужно сохранять временный файл на диск, просто чтобы иметь возможность вернуть его потребителю контента?

Ответы на вопрос(2)

Ваш ответ на вопрос