Итак, в моем приложении есть WebView с изображением, которое я хочу сохранить при нажатии кнопки. Для этого я использовал этот код:

import org.apache.http.util.ByteArrayBuffer;

 public void DownloadFromUrl(String fileName) {  //this is the downloader method
    try {
            URL url = new URL(wv2.getUrl()); //you can write here any link
            File file = new File(fileName);
            Canvas canvas = new Canvas();
            wv2.draw(canvas );

            long startTime = System.currentTimeMillis();
            Log.d("ImageManager", "download begining");
            Log.d("ImageManager", "download url:" + url);
            Log.d("ImageManager", "downloaded file name:" + fileName);
            URLConnection ucon = url.openConnection();

            InputStream is = ucon.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);

            ByteArrayBuffer baf = new ByteArrayBuffer(50);
            int current = 0;
            while ((current = bis.read()) != -1) {
                    baf.append((byte) current);
            }

            FileOutputStream fos = new FileOutputStream(file);
            fos.write(baf.toByteArray());
            fos.close();
            Log.d("ImageManager", "download ready in"
                            + ((System.currentTimeMillis() - startTime) / 1000)
                            + " sec");

    } catch (IOException e) {
            Log.d("ImageManager", "Error: " + e);
    }

}

Где wv2 - это WebView. Как ни странно, я больше не могу этого делать и получаю сообщение об ошибке Не могу разрешить символ ByteArrayBuffer в моем операторе импорта

Oleksandr Firsov

Ответов: 1

Ответы (1)

org.apache.http удален в последнем SDK, поэтому импорт не выполняется.

NB, вам не нужен ByteArrayBuffer в этом коде, вы можете использовать вместо него ByteBuffer или писать от bis до fos, например:

            InputStream is = ucon.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);
            FileOutputStream fos = new FileOutputStream(file);

            int current = 0;
            while ((current = bis.read()) != -1) {
                    fos.write(current);
            }

            fos.close();

2022 WebDevInsider