Я пытаюсь открыть некоторые изображения в веб-просмотре после загрузки
Я могу загрузить его, загрузить его правильно, долгое нажатие на это изображение
Но я хочу, чтобы мой загруженный образ должен автоматически открыться в Галерее
Вот мой код
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();
}
}
}
Пожалуйста, предложите любые изменения, которые я не могу решить, чтобы решить. Я не могу открыть файл автоматически после его загрузки. Предложить будет очень полезно