为啥我的外部存储在 Android 7 中不可读写 [重复]

Posted

技术标签:

【中文标题】为啥我的外部存储在 Android 7 中不可读写 [重复]【英文标题】:Why is my external storage not readable and writable in Android 7 [duplicate]为什么我的外部存储在 Android 7 中不可读写 [重复] 【发布时间】:2018-03-19 00:34:56 【问题描述】:

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

【问题讨论】:

因为从6.0开始需要获取它的运行时权限 【参考方案1】:

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

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

【讨论】:

以上是关于为啥我的外部存储在 Android 7 中不可读写 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android studio中为啥明明写了权限还会报错

为啥我无权写入外部存储上的应用程序目录?

Android数据存储(External Storage,外部存储)

Android数据存储(External Storage,外部存储)

在android中读写文件

Android开发:获取内部/外部存储路径