1

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

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

失败方案显示5缓冲读取从1.3的URLConnection变化到4.1kb(13KB图像) .getContentLength()返回-1,urlConnection.getInputStream()。available()返回0.此场景的连接标题显示Transfer-Encoding = [chunked]。我曾尝试阅读输入流分块(https://stackoverflow.com/a/16646479/2333242),但质量损失仍然存在。

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

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

回答

0

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