Environment.getExternalStorageDirectory()。canWrite()返回false

时间:2013-10-10 21:24:15

标签: android android-external-storage

我已检查以下代码

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 mounted and writable

但是Environment.getExternalStorageDirectory().canWrite()总是返回false。有人可以建议吗?

2 个答案:

答案 0 :(得分:5)

您的应用需要WRITE_EXTERNAL_STORAGE权限。此外,如果您正在编写仅由您的应用程序使用的文件,则应将其存储在Context.getExternalFilesDir()中,以防止将应用程序的文件传播到公共存储中。如果 正在编写公共文件,则应将其存储在Environment.getExternalStoragePublicDirectory()中。

答案 1 :(得分:0)

检查您的设备是否有足够的存储空间。这也可能是问题所在。