我检查了下面的代码
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
Log.d("StatusActivity", "sdcard mounted and writable");
}
else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
Log.d("StatusActivity", "sdcard mounted readonly");
}
else {
Log.d("StatusActivity", "sdcard state: " + state);
}
输出显示 sdcard 已安装且可写
但是 Environment.getExternalStorageDirectory().canWrite()
总是返回 false。任何人都可以建议吗?
最佳答案
您的应用需要 WRITE_EXTERNAL_STORAGE 权限。此外,如果您编写的文件仅供您的应用程序使用,则应将其存储在 Context.getExternalFilesDir() 中,以防止将您的应用程序文件散布到整个公共(public)存储空间。如果您正在编写公共(public)文件,则应将其存储在 Environment.getExternalStoragePublicDirectory() 中。
关于android - Environment.getExternalStorageDirectory().canWrite() 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19306485/