我正在尝试读取和写入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(外部)存储既不可读也不可写。有人遇到过这样的问题吗?我没有想法如何解决这个问题。
答案 0 :(得分:1)
从android 6.0开始,您还应该检查运行时的权限以及在清单中使用它们。
为了处理运行时权限,我创建了一个帮助程序库,可以帮助您: https://github.com/nabinbhandari/Android-Permissions