Я делаю приложение с webView в студии Android.Он содержит только изображения, поэтому у меня также есть встроенная кнопка загрузки в моем приложении.В версии Android Marshmallow вы должны запросить разрешение, и у меня есть код разрешения в onCreate, например:
int check = ActivityCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (check == PackageManager.PERMISSION_GRANTED) {
//Do something
} else {
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},1024);
}
, но он появляется при запуске приложения, и я хочу, чтобы он появлялся, когда пользователь нажимает накнопка загрузки.
моя кнопка загрузки в html выглядит следующим образом:
<a href="url">Download</a>
, а код загрузки в приложении выглядит следующим образом:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".jpg")) {
Uri source = Uri.parse(url);
// Make a new request pointing to the .apk url
DownloadManager.Request request = new DownloadManager.Request(source);
// appears the same in Notification bar while downloading
request.setDescription("Description for the DownloadManager Bar");
request.setTitle("PunjabiDharti.jpg");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
// save the file in the "Downloads" folder of SDCARD
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "PunjabiDharti.jpg");
// get download service and enqueue file
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
Как вызвать запрос на разрешениекогда пользователь нажимает кнопку загрузки?