为什么我的外部存储在 Android 7 中不可读不可写

Why is my external storage not readable and writable in Android 7

我正在尝试读取和写入外部存储Android 7.我正在使用以下代码来检查读取和写入状态。

public void checkStorage() {

    File sd = Environment.getExternalStorageDirectory();

    if (sd.canWrite() && sd.canRead())
        Toast.makeText(context, "sd can read and write", Toast.LENGTH_LONG).show();
    else if (sd.canWrite() && !sd.canRead())
        Toast.makeText(context, "sd cannot read but write", Toast.LENGTH_LONG).show();
    else if (!sd.canWrite() && sd.canRead())
        Toast.makeText(context, "sd can read but not write", Toast.LENGTH_LONG).show();
    else if (!sd.canWrite() && !sd.canRead())
        Toast.makeText(context, "sd cannot read and write", Toast.LENGTH_LONG).show();

}

我还提到了清单文件中的两个权限

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

但我仍然发现 sd(外部)存储既不可读也不可写。有人遇到过这样的问题吗?我不知道如何解决这个问题。

从 android 6.0 开始,您还应该在运行时检查权限以及在清单中使用它们。

为了处理运行时权限,我创建了一个帮助程序库,它可以帮助您: https://github.com/nabinbhandari/Android-Permissions