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

时间:2017-10-07 09:30:31

标签: android android-external-storage

我正在尝试读取和写入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(外部)存储既不可读也不可写。有人遇到过这样的问题吗?我没有想法如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

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

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