Загрузите изображение с веб-сайта Android. Где эти изображения сохранены?

Я создал приложение для Android с веб-браузером и добавил опцию "долгое нажатие для сохранения изображения".
код работает без проблем, и он также загружает изображение, я могу открыть загруженное изображение из панели уведомлений, но я не знаю, где оно сохранено. Я искал каждую папку моего хранилища, но я не мог найти файл. вот мой код для моего "контекстного меню"

//To save image from web view
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);

    // Get the web view hit test result
    final WebView.HitTestResult result = myWebView.getHitTestResult();

    /*
        WebView.HitTestResult

            IMAGE_TYPE
                HitTestResult for hitting an HTML::img tag.

            SRC_IMAGE_ANCHOR_TYPE
                HitTestResult for hitting a HTML::a tag with src=http + HTML::img.
    */

    // If user long press on an image
    if (result.getType() == WebView.HitTestResult.IMAGE_TYPE ||
            result.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {

        // Set the title for context menu
        menu.setHeaderTitle("CONTEXT MENU");

        // Add an item to the menu
        menu.add(0, 1, 0, "Save Image")
                .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem menuItem) {
                        // Get the image url
                        String imgUrl = result.getExtra();

                        // If this is an image url then download it
                        if (URLUtil.isValidUrl(imgUrl)) {
                            // Initialize a new download request
                            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(imgUrl));
                            request.allowScanningByMediaScanner();
                            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                            DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);


                            downloadManager.enqueue(request);

                            Toast.makeText(myContext, "image saved.", Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(myContext, "Invalid image url.", Toast.LENGTH_SHORT).show();
                        }
                        return false;
                    }
                });

1 ответ

Это должно сохранить изображение в папке загрузок. Если там нет сохранения, Вы можете внести некоторые изменения в код

request.setDestinationInExternalPublicDir(
                Environment.DIRECTORY_DOWNLOADS,    //Download folder
                URLUtil.guessFileName(DownloadImageURL, null, null));  //Name of file

DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);

Вы должны предоставить разрешение на хранение в файле манифеста

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Также предоставьте разрешение программно, и теперь вы можете сохранить это изображение в любом месте, которое вы хотите указать.

Другие вопросы по тегам