2016-08-31 3 views
0

Так что у меня нет внешней SD-карты, и я хочу записать файл в разделе External моего внутреннего хранилища устройств.Невозможно записать файл внутри основного внешнего хранилища

Вот мой код:

private String filename = "SampleFile.txt"; 
private String filepath = "MyFileStorage"; 
File mySensorData = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) 
    , filepath); 
    String myData = ""; 

private void FileWrite(String sensorReading) throws IOException { 
     if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) { 
      try { 
       FileOutputStream fos = new FileOutputStream(mySensorData); 
       fos.write(sensorReading.getBytes()); 
       fos.close(); 

       Toast.makeText(this, "File written to the external storage.", 
         Toast.LENGTH_SHORT).show(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     else { 

      Toast.makeText(this, "Unable to read the external storage.", 
        Toast.LENGTH_SHORT).show(); 
     } 
    } 

    //external storage discrepancies handler 
    private static boolean isExternalStorageReadOnly() { 
     String extStorageState = Environment.getExternalStorageState(); 
     if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState)) { 
      return true; 
     } 
     return false; 
    } 

    private static boolean isExternalStorageAvailable() { 
     String extStorageState = Environment.getExternalStorageState(); 
     if (Environment.MEDIA_MOUNTED.equals(extStorageState)) { 
      return true; 
     } 
     return false; 
    } 

Я постоянно получаю Unable to read the external storage. тосты и эту ошибку на мониторе:

W/System.err: Caused by: android.system.ErrnoException: open failed: EROFS (Read-only file system) 

Где проблема? Спасибо.

+1

попробовать getExternalStorageDirectory() вместо getExternalStoragePublicDirectory. Или Environment.DIRECTORY_MOVIES –

+0

@RandykaYudhistira Не работает! –

ответ

Смежные вопросы