На стороне клиента потребителя контент-провайдера я могу сделать что-то вроде этого, чтобы получить правильный 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
или что-нибудь еще, чтобы мне не требовалось сохранять временный файл на диск, чтобы иметь возможность вернуть его потребителю моего поставщика контента?