在Lollipop中,下载功能在我的应用程序中运行良好,但是当我升级到Marshmallow时,我的应用程序崩溃并在我尝试从互联网下载到SD卡时出现此错误:
Neither user nor current process has android.permission.WRITE_EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)
它抱怨这行代码:
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)
我在应用程序外的清单中拥有权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
Run Code Online (Sandbox Code Playgroud)
我清理并重建了项目,但它仍然崩溃.
在Android OS 4.0上运行我的应用程序并请求READ_EXTERNAL_STORAGE权限时出现问题:
ActivityCompat.requestPermissions(ctx, requestedPermissions, requestCode);
Run Code Online (Sandbox Code Playgroud)
我总是接受回调
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
grantResults != PackageManager.PERMISSION_GRANTED
Run Code Online (Sandbox Code Playgroud)
检查权限ActivityCompat.checkSelfPermission始终返回permissionDenied.
通过系统对话框请求权限,它在OS 6.0上运行良好.Android OS 4.x除了4.0之外,总是授予权限.OS 4.0的其他权限(相机,日历,联系人,电话)表现良好,除了READ_EXTERNAL_STORAGE导致此问题.
可能是操作系统问题?