Как открыть загруженное изображение автоматически через веб-просмотр в android - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь открыть некоторые изображения в веб-просмотре после загрузки

Я могу загрузить его, загрузить его правильно, долгое нажатие на это изображение

Но я хочу, чтобы мой загруженный образ должен автоматически открыться в Галерее

Вот мой код

    public class downloadopenimage extends AppCompatActivity {


    private WebView webView;
    String url="https://www.google.com";



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_downloadopenimage);

        webView = (WebView)findViewById(R.id.webview);
        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl(url);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        registerForContextMenu(webView);

        registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));

    }


    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);

        final WebView.HitTestResult webViewHitTestResult = webView.getHitTestResult();

        if(webViewHitTestResult.getType() == WebView.HitTestResult.IMAGE_TYPE || webViewHitTestResult.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE){



            menu.add(0,1,0,"Download Image").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem menuItem) {

                    String DownloadImageURL = webViewHitTestResult.getExtra();

                    if (URLUtil.isValidUrl(DownloadImageURL)){
                        DownloadManager.Request request = new DownloadManager.Request(Uri.parse(DownloadImageURL));
                        request.allowScanningByMediaScanner();
                        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                        DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                        downloadManager.enqueue(request);

                        Toast.makeText(downloadopenimage.this, "Downloaded Successfull", Toast.LENGTH_SHORT).show();



                    }else {
                        Toast.makeText(downloadopenimage.this, "Error Downloading .. ", Toast.LENGTH_SHORT).show();
                    }

                    return false;
                }
            });

        }

    }

    BroadcastReceiver receiver = new BroadcastReceiver() {

        DownloadManager downloadManager;
        long enq;


        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
                long downloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
                DownloadManager.Query query = new DownloadManager.Query();
                query.setFilterById(enq);
                downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
                Cursor c = downloadManager.query(query);
                if (c.moveToFirst()) {
                    int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
                    if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
                        String uriString = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
                        //TODO : Use this local uri and launch intent to open file

                    }
                }
            }
        }
    };



    @Override
    public void onBackPressed() {
        if(webView.canGoBack()){
            webView.goBack();
        }else {
            super.onBackPressed();
        }
    }

}

Пожалуйста, предложите любые изменения, которые я не могу решить, чтобы решить. Я не могу открыть файл автоматически после его загрузки. Предложить будет очень полезно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...