Java 即使Android上的权限被拒绝,应用程序也会将文件下载到存储中
我正在构建一个Android应用程序,我有一个奇怪的错误,应用程序将视频下载到图库中,即使存储权限被拒绝。我已经阅读了文档,对此感到困惑。(与谷歌的文档一样) 它说这是一个Java 即使Android上的权限被拒绝,应用程序也会将文件下载到存储中,java,android,android-permissions,android-download-manager,Java,Android,Android Permissions,Android Download Manager,我正在构建一个Android应用程序,我有一个奇怪的错误,应用程序将视频下载到图库中,即使存储权限被拒绝。我已经阅读了文档,对此感到困惑。(与谷歌的文档一样) 它说这是一个危险的权限,所以它应该要求我允许它,但我不认为它允许(这可能只是我的记性不好),但无论如何,这是不允许的,但它仍然可以将视频下载到库中 但权限在AndroidManifest中 Minsdk版本为19,目标为29。 手机运行的是安卓10 <uses-permission android:name="andr
危险的权限,所以它应该要求我允许它,但我不认为它允许(这可能只是我的记性不好),但无论如何,这是不允许的,但它仍然可以将视频下载到库中
但权限在AndroidManifest中
Minsdk版本为19,目标为29。
手机运行的是安卓10
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
您使用的设备上的Android版本是什么?您的应用程序没有下载并存储到文件中,但Downloadmanager会下载并存储到文件中。DownloadManager不需要权限。direct.mkdir()代码>您不必创建该目录,因为DownloadManager将为您创建该目录。此外,您应该检查返回值,因为它可能会失败<代码>如果(!direct.mkdir())返回
您应该告诉我们可以使用mkdirs()创建目录。但是也许你不能。这不是一个可能的安全问题吗?由于您可以使用DownloadManager下载存储在internet上的任何内容,因此您可能很容易下载恶意软件,不是吗?
String filename = _filename + ".mp4";
File direct =
new File(Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
.getAbsolutePath() + "/" + "MY_FOLDER" + "/");
if (!direct.exists()) {
direct.mkdir();
}
DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
Uri downloadUri = Uri.parse(uri);
DownloadManager.Request request = new DownloadManager.Request(downloadUri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setTitle(filename)
.setMimeType("video/mp4")
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES,
File.separator + "MY_FOLDER" + File.separator + filename);
dm.enqueue(request);