在内容提供者消费者的客户端,我可以执行以下操作,以获得用于读取图片的正确输入流:
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
or InputStream
或其他任何内容,以便我不需要将临时文件保存到磁盘,只是能够将其返回给我的内容提供商消费者?
这很难。你might能够使用任何可以使用 Socket 接口的东西。我没有这样做,但这就是让我这么认为的原因:
http://developer.android.com/reference/android/os/ParcelFileDescriptor.html#fromSocket(java.net.Socket)
从理论上讲,套接字可以是互联网资源,或者几乎任何东西......如果您愿意在套接字级别工作。我可能会放弃并创建临时文件。也许这让我成为一个胆小鬼。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)