2015-10-21 42 views
1

早些時候,我在根用戶的設備上使用KitKat,我能夠輕鬆創建臨時文件。但是現在我在Nexus 5上安裝了Marshmallow,同樣的代碼給了我一個例外。在Android上保存文件的例外Marshmallow

相關的代碼是:

File storageDir = Environment.getExternalStoragePublicDirectory(
     Environment.DIRECTORY_DOWNLOADS); 

//  File repertoireStockage = Environment.getExternalStorageDirectory(); 
     try { 
      file1 = File.createTempFile("RecordAudio",".mp4", storageDir); 
     } 
     catch (IOException e) { 
      Log.e("RecordAudio", "I/O Problem"); 
      e.printStackTrace(); 
      return; 
     } 

是的,我確實有application標籤之外的權限Manifest.xml文件

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

早些時候,我用註釋行獲得存儲目錄,但現在,兩者都不起作用。任何形式的幫助,將不勝感激。

我試過刪除數據線後保存文件,我仍然得到相同的異常。

+0

請分享您的logcat的! –

+0

您必須申請許可。 Marshamallow擁有「運行時權限」。 閱讀此幻燈片以瞭解最新動態 https://goo.gl/photos/9R6ss39caQHLyEmU6 –

回答

0

操作系統帶來了許多新功能,它還具有內置文件管理器,可能會被許多用戶忽視。

許多第三方文件管理器允許用戶重命名文件,創建新文件夾,剪切文件等等。但是,Android 6.0 Marshmallow的板載文件管理器不允許執行此類操作。

注意,當 應用程序的內部和外部存儲設備之間移動它們返回的文件路徑會動態變化。當建立文件路徑爲 時,強烈建議您總是動態地調用 這些API。不要使用硬編碼的文件路徑,也不要堅持以前構建的完全合格的文件路徑。

鏈接,參考

1)http://developer.android.com/about/versions/marshmallow/android-6.0.html

2)http://www.techtimes.com/articles/94044/20151012/android-6-0-marshmallow-has-a-built-in-file-manager-heres-how-to-access-it.htm

相關問題