java - 在 list 和运行时允许读写权限后权限被拒绝

标签 java android

我收到此错误

   W/System.err: java.io.FileNotFoundException: /root/storage/emulated/0/DCIM/Camera/IMG_20181116_172404.jpg (Permission denied) 

我在 list 中添加了以下内容:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

在MainActivity.java中添加了以下代码

    final private int REQUEST_CODE_ASK_PERMISSIONS = 123;
    private void checkIfPermissionGranted() {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            int hasWritePermission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
            int hasReadPermission = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
            if(hasWritePermission != PackageManager.PERMISSION_GRANTED){
                requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},
                        REQUEST_CODE_ASK_PERMISSIONS);
                return;
            }
            if(hasReadPermission != PackageManager.PERMISSION_GRANTED){
                requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
                        REQUEST_CODE_ASK_PERMISSIONS);
                return;
            }
        }

    }

我该如何解决这个问题?这是设置菜单中应用程序权限的屏幕截图

最佳答案

  // Implement this overide method..

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions,
                                           int[] grantResults) 
{

        if (grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {


    //  implement Your File related Code here,

        } else {
            Toast.makeText(this, "Permission is Require for Access External Storage", Toast.LENGTH_SHORT).show();
        }

    }

关于java - 在 list 和运行时允许读写权限后权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56395417/

相关文章:

Java 数组和数组列表

java - 为什么不鼓励在 Java EE 容器中生成线程?

java - 由于底层的 SQLBrite,无需使用 toList() 即可组合两个可观察对象

android - 使用后退按钮作为 react native android 应用程序的背景

java - Fragment运行时异常调试

java - 数学方程中的 Nan

java - 创建并读取测试文件android

android - 通过这样的代码自定义 View

java - j2me中如何将12小时时间转换为24小时时间?

android - 不同应用程序调用时 "Generating New Processes"出现问题?