Android图像质量取决于网络速度

时间:2014-02-21 23:19:21

标签: android android-image android-networking imaging bufferedinputstream

当连接到4G ATT网络并使用InputStream或BufferedInputStream从我的服务器下载图像时,图像大小和质量会降级。从谷歌服务器下载相同的图片时,图像质量完美无瑕。当连接到Wifi,T-Mobile或Verizon网络时,两种情况下的图像质量都很好。

成功案例显示137个缓冲读取周期,每个1.3kb。 (174kb图像) urlConnection.getContentLength()返回适当的文件大小和urlConnection.getInputStream()。available()> 0

失败的场景显示5个缓冲读取从1.3到4.1kb(13kb图像),urlConnection.getContentLength()返回-1并且urlConnection.getInputStream()。available()返回0.此场景的连接头显示Transfer-编码= [分块。我已经尝试将输入流读取为chunked(https://stackoverflow.com/a/16646479/2333242),但仍然存在质量损失。

起初我虽然罪魁祸首是ATT可能正在做一些限制,但后来我把这个ATT连接线连接到另一部相同的手机,图像质量完美无瑕。使用Android图像加载器(http://developer.android.com/training/displaying-bitmaps/index.html)并对位于我的服务器中的图像的网址进行硬编码显示出同样的质量损失。我玩过连接和读取超时,结果是一样的。

任何想法可能会发生什么?

1 个答案:

答案 0 :(得分:0)

AT& T手机上错误的APN设置导致数据被分块。始终使用默认运营商设置。