5

我检查了下面的代码

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()总是返回假。任何人都可以建议吗?

4

2 回答 2

6

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

于 2013-10-11T01:08:08.527 回答
1

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

于 2017-12-18T16:45:23.960 回答