2014-01-15 52 views
0

我有一個應用程序要將文件寫入SD卡。外部SD卡權限被拒絕(JellyBean 4.2.2)

的路徑,SD卡是

到/ mnt/extsd

當我嘗試創建一個文件或使用mkdirs目錄()返回false。

我也越來越

打開失敗:EACCES(拒絕)

我已經安裝在我的平板電腦ES文件瀏覽器。它能夠將文件複製到SD卡。我不知道它是如何做的。

請幫忙!!提前致謝。

+2

您是否在清單f中添加了權限? ile – Raghunandan

+1

是的,我也添加了權限 <使用權限android:name =「android.permission.WRITE_EXTERNAL_STORAGE」/> 它是在範圍之外。 當我做的Environment.getExternalStorageDirectory()它返回我的內部存儲器(非手機內存)「/ mnt/sdcard」的路徑 我想寫入外部SD卡 – bhavindesai

+0

其外部存儲。你不能做太多的事情。您的手機存儲器具有外部存儲器。返回的路徑是外部存儲的路徑。有一種解決方法,不建議使用 – Raghunandan

回答

1

編輯:

使用

String extsdPath = System.getenv("SECONDARY_STORAGE"); // will return you /mnt/extsd/ 

即使在此之後,

轉到終端在亞行外殼 打「ls -l命令的/ mnt /」命令,如果

d---rwxr-x system media_rw   1970-01-01 05:30 extsd 
d---rwxr-x system sdcard_rw   1970-01-01 05:30 sdcard 

如果它的media_rw組那麼你的應用程序沒有寫入「/ mnt/extsd /」的權限。該權限僅授予系統應用程序。這是Google報告的錯誤。

參考鏈接:google group post

+0

這不是這裏的問題。 op在評論中說:「它返回了我的路徑」/ mnt/sdcard「」。所以返回的路徑是正確的 – Raghunandan

+0

編輯答案。 – aditya

+0

我已經提出了一個不推薦的解決方法 – Raghunandan

0

給燙髮到/ mnt/media_rw/external_SD:

mount -o remount,rw/ 
chmod 770 /mnt/media_rw/. 
mount -o remount,ro/ 
1

問題是果凍豆

這個工作對我來說

String path = null; 
     if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT){ 
      path = getCacheDir() + File.separator + "name"; 
     } else{ 
      path = Environment.getExternalStorageDirectory() + File.separator + "name"; 
     }