Returning a memory mapped InputStream from a content provider?
The the client side of a content provider consumer I can do something like this, to get a proper InputStream for reading the picture: InputStream is = getContentResolver().openInputStream(pictureUri); It is a nice API, and will on the server side, the actual content provider result in a call to: public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException { // Open a proper ParcelFileDescriptor, most likely using openFileHelper(uri, mode) } But what if the picture mapped to the URI is not to be found on the filesystem, but as a memory resource, or generated on the