我成功地写了一个应用程序,based on this blog post,但更简单,它使用POST请求通过HTTP流式传输图像.
我无法弄清楚(搜索网页并爬行到Android SDK文档中)是,我在分享之前如何获取图像的大小?
只有打开一个可以在其他地方看到的输入流的可能性:
ContentResolver cr = getContentResolver(); InputStream is = cr.openInputStream(uri);
给定的博客帖子示例使用getBytesFromFile(is),所以可以在那里获取大小,但这不是一个解决方案.一些图像是巨大的,而Android应用程序在堆空间有限.我想让我的应用程序适用于所有可以想象的大小的图像(在通过Wifi分享时不是问题).
解决方法
你也可以这样检查:
Uri fileUri = resultData.getData(); Cursor cursor = getActivity().getContentResolver().query(fileUri,null,null); cursor.moveToFirst(); long size = cursor.getLong(cursor.getColumnIndex(OpenableColumns.SIZE)); cursor.close();
资源:
https://developer.android.com/training/secure-file-sharing/retrieve-info.html