Android:在共享之前获取图像的文件大小(Intent.ACTION_SEND)

前端之家收集整理的这篇文章主要介绍了Android:在共享之前获取图像的文件大小(Intent.ACTION_SEND)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我成功地写了一个应用程序,based on this blog post,但更简单,它使用POST请求通过HTTP流式传输图像.

我无法弄清楚(搜索网页并爬行到Android SDK文档中)是,我在分享之前如何获取图像的大小?

只有打开一个可以在其他地方看到的输入流的可能性:

ContentResolver cr = getContentResolver();
InputStream is = cr.openInputStream(uri);

给定的博客帖子示例使用getBytesFromFile(is),所以可以在那里获取大小,但这不是一个解决方案.一些图像是巨大的,而Android应用程序在堆空间有限.我想让我的应用程序适用于所有可以想象的大小的图像(在通过Wifi分享时不是问题).

因此,我唯一的选择是将输入流“转发”到一些HTTP输出流,我做和哪些工作.但是,这种方法在发送之前不会给我图像大小.

解决方法

你也可以这样检查:
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

原文链接:https://www.f2er.com/android/311007.html

猜你在找的Android相关文章