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設置導致數據被分塊。始終使用默認運營商設置。