2013-10-10 5 views
1

내가 출력은 sdcard mounted and writableEnvironment.getExternalStorageDirectory(). CanWrite라고는()

을 보여줍니다

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); 
        } 

아래의 코드를 확인하신 후 false를 반환하지만 Environment.getExternalStorageDirectory().canWrite()는 항상 false를 반환합니다. 누구든지 조언 할 수 있습니까?

답변

4

앱에 대해 WRITE_EXTERNAL_STORAGE 권한이 필요합니다. 또한 앱에서만 사용되는 파일을 작성하는 경우 Context.getExternalFilesDir()에 저장하여 공용 저장소에 앱의 파일이 확산되지 않도록해야합니다. 이 공개 파일을 작성하는 인 경우 Environment.getExternalStoragePublicDirectory()에 저장해야합니다.

+0

'를 추가하면 매니페스트 파일에서 문제가 해결되었습니다. 문제가 해결되었습니다. – misguided

0

장치의 저장 공간이 충분한 지 확인하십시오. 그것은 또한 문제 일 수 있습니다.