我正在编写的 Android 应用程序涉及大量内容下载(想想 podcatcher/RSS)。
我希望能够向用户表明他们已下载了多少字节,以便他们可以决定是否要使用 Wifi。
为此,我找到了一种计算应用读取字节数的方法,方法是将 InputStream
包装在一个简单的 CountingInputStream
.
但是,这没有考虑数据包 header 和 HTTP header 等基本内容。更重要的是,它没有考虑内容编码时可能使用的任何压缩。
那么,我的应用程序通过网络下载了多少字节?我对上传的字节数不太感兴趣,但如果知道如何,请不要害羞。
当我将输入流输入 XML PullParser 时,我采用了相当低级的方法。我还需要进行类似的练习,将字节(本例中为图像)直接转储到 SD 卡上。
这是最好的方法吗?我错过了什么?
最佳答案
ufff...我认为这对底层协议(protocol)来说非常透明,因此您无法计算 session 或链路层中使用的所有这些字节,并且运算符(operator)甚至喜欢对那些不以任何方式可见的控制字节进行收费最终用户。他们还计算两个方向的流量(您对服务器的请求也需要一些),所以 - 好问题是:如何测量下载该图片所需的流量/金钱...?
关于java - 在 Android/Java 上,连接下载了多少字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272936/