Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android/Java上,一个连接下载了多少字节?_Java_Android_Inputstream_Billing_Urlconnection - Fatal编程技术网

在Android/Java上,一个连接下载了多少字节?

在Android/Java上,一个连接下载了多少字节?,java,android,inputstream,billing,urlconnection,Java,Android,Inputstream,Billing,Urlconnection,我正在编写的安卓应用程序涉及大量内容下载(想想podcatcher/RSS) 我想让用户知道他们下载了多少字节,这样他们就可以决定是否使用Wifi 为此,我找到了一种计算应用程序读取的字节数的方法,方法是将InputStream包装在一个简单的CountingInputStream中 然而,这并没有考虑诸如包头和HTTP头之类的基本内容。更重要的是,它没有考虑内容可能被编码的任何压缩 那么,我的应用程序通过网络下载了多少字节?我对上传的字节数不太感兴趣,但如果知道怎么做,请不要害羞 在将输入流输

我正在编写的安卓应用程序涉及大量内容下载(想想podcatcher/RSS)

我想让用户知道他们下载了多少字节,这样他们就可以决定是否使用Wifi

为此,我找到了一种计算应用程序读取的字节数的方法,方法是将
InputStream
包装在一个简单的
CountingInputStream

然而,这并没有考虑诸如包头和HTTP头之类的基本内容。更重要的是,它没有考虑内容可能被编码的任何压缩

那么,我的应用程序通过网络下载了多少字节?我对上传的字节数不太感兴趣,但如果知道怎么做,请不要害羞

在将输入流输入XML解析器时,我采用了一种相当低级的方法。我还需要做一个类似的练习,将字节(本例中的图像)直接转储到SD卡上


这是最好的方法吗?我错过了什么?

ufff。。。我认为这对底层协议来说是非常透明的,所以您不能计算会话或链接层中使用的所有字节,而且操作员甚至喜欢对最终用户看不到的控制字节收费。此外,他们还计算两个方向的流量(您对服务器的请求也需要一些),所以好的问题是:如何衡量下载图片所需的流量/资金

这不是一个直接的答案,但你可以试着询问以前解决过类似问题的人,例如数据计数器应用程序。我使用了Cyril Jaquier()的NetCounter,他声称他的软件是开源的。我无法让他的下载链接工作,但有一个联系电子邮件地址。如果你得到了他的源代码,你应该能够使用与他相同的方法。

正如我所知,有两种方法可以计算数据流量。一个是在名为netCounter的android应用程序中提到的/sys/class/net/{interface}/statistics,另一个是在名为wifi tether的android应用程序中使用的/proc/net/dev。但我不知道这两种方法之间的区别,也不知道哪种方法更好。

特定应用程序接收的字节数存储在/proc/uid\u stat//tcp\u rcv中,其中app\u uid是特定设备上应用程序的uid

这使用/sys/class/net/${interface}/statistics/rx_字节,即:系统范围(我需要特定于应用程序的);和平台相关-您引用的应用程序必须解决一些移植问题。总而言之,这是一个很好的建议,但对我来说可能是太低了一层。谢谢,谢谢。我一定会看看这个。