2013-10-10 79 views
1

我已經檢查了下面的代碼Environment.getExternalStorageDirectory()。canWrite()返回false

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。任何人都可以建議嗎?

回答

4

您需要爲您的應用程序提供WRITE_EXTERNAL_STORAGE權限。此外,如果您正在編寫僅由您的應用使用的文件,則應將其存儲在Context.getExternalFilesDir()中,以防止在公共存儲中傳播您的應用文件。如果你編寫公共文件,你應該將它存儲在Environment.getExternalStoragePublicDirectory()中。

+0

在清單文件中添加'<使用權限android:name =「android.permission.WRITE_EXTERNAL_STORAGE」/>確實解決了問題'解決了問題 – misguided

0

檢查您的設備是否有足夠的存儲空間。這也可能是問題所在。