Retornando uma memória mapeada InputStream de um provedor de conteúdo?
O lado do cliente de um consumidor provedor de conteúdo eu posso fazer algo parecido com isto, para obter um InputStream apropriado para ler a imagem:
InputStream is = getContentResolver().openInputStream(pictureUri);
É uma boa API e, no lado do servidor, o provedor de conteúdo real resulta em uma chamada para:
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
// Open a proper ParcelFileDescriptor, most likely using openFileHelper(uri, mode)
}
Mas e se a imagem mapeada para o URI não for encontrada no sistema de arquivos, mas como um recurso de memória ou gerada na hora.
Posso criar uma memória mapeadaFile
ouInputStream
, ou qualquer outra coisa, para que eu não seja obrigado a salvar um arquivo temporário em disco, apenas para poder devolvê-lo ao meu consumidor de provedor de conteúdo?