我正在尝试使用DownloadManager下载文件。是的,我知道人们已经犯了这个错误。但我的问题似乎还没有解决。我每次都试过。
我取消了这个权限:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_ALL_DOWNLOADS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我的密码
public void startDownload(String str) {
try {
MarshmellowPermissions permissions = new MarshmellowPermissions(context);
permissions.checkWriteExternalStoragePermission();
DownloadManager mManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request mRqRequest = new DownloadManager.Request(Uri.parse(str));
mRqRequest.setDescription("This is Test File");
long idDownLoad = mManager.enqueue(mRqRequest);
mManager.remove(idDownLoad);
try {
mManager.openDownloadedFile(idDownLoad);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我在这一行中出错了
mManager.openDownloadedFile(idDownLoad);
这是错误日志:
java.lang.SecurityException: Permission Denial: reading com.android.providers.downloads.DownloadProvider uri content://downloads/all_downloads/15 from pid=3926, uid=10086 requires android.permission.ACCESS_ALL_DOWNLOADS, or grantUriPermission()
发布于 2018-12-12 11:49:59
看上去好像还没有人给出答案,我已经解决了这个问题,并想分享我是如何解决这个问题的。所以基本上它不起作用,因为我没有请求运行时的许可。
我所做的就是询问运行时的权限。使用下面的代码。
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
https://stackoverflow.com/questions/47361213
复制相似问题