2011-09-09 113 views
1

我試圖讀/寫文件到SD卡。我已經嘗試在我的真實手機和eclipse上的模擬器上這樣做。在這兩種設備上,對/ mnt/sdcard /或/ sdcard的許可只是「d --------」,我猜這意味着我無法讀取或寫入。無法訪問SD卡

我不能在eclipse中的「文件視圖」中打開文件夾,而且當我也嘗試「adb pull /mnt/sdcard/test.txt test.txt」時,我得到的遠程對象不存在。

android應用程序確實有權限「WRITE_EXTERNAL_STORAGE」。

下面是我在運行應用程序時做的事情;

 try { 
      File root = Environment.getExternalStorageDirectory(); 
      Log.e(TAG,root.getAbsolutePath()); 
       File gpxfile = new File(root, "test.txt"); 
       FileWriter gpxwriter = new FileWriter(gpxfile); 
       BufferedWriter out = new BufferedWriter(gpxwriter); 
       out.write("Hello world"); 
       out.close(); 
     } catch (IOException e) { 
      Log.e(TAG, "Could not write file " + e.getMessage()); 
     } 

我沒有得到異常。 任何想法?這個問題正在殺死我!

+0

'我不能讀或寫'你是對的你沒有權限讀寫我也面臨同樣的問題。那時我無法存儲在模擬器中,而是存儲在電話設備中。我認爲有一些事情與路徑讓我看看preivos並給你解決方案 –

回答

1

這就是例子,你可以顯示從perticular網址SD卡圖像,所以你需要像權限...

許可::

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

的Java文件::

package com.sdcard; 

import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.net.URL; 

import android.app.Activity; 
import android.os.Bundle; 
import android.os.Environment; 

public class SdcardActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     try{ 
      URL url = new URL ("http://www.coolpctips.com/wp-content/uploads/2011/05/top-30-android-games.jpg"); 
      InputStream input = url.openStream(); 
      try { 
       OutputStream output = new FileOutputStream (Environment.getExternalStorageDirectory()+"/top-30-android-games.jpg"); 
       int aReasonableSize = 1000; 
       byte[] buffer = new byte[aReasonableSize]; 
       int bytesRead = 0;; 
       try { 
        while ((bytesRead = input.read(buffer)) > 0) { 
         output.write(buffer, 0, bytesRead); 
        } 
       } finally { 
        output.close(); 
       } 
      } finally { 
       input.close(); 
      } 
      }catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

還有一段時間我們的網絡連接錯過了,或者我們無法找到SD卡的設備也面臨問題

+0

它dosnt幫我獲取讀寫權限 – KaiserJohaan

+0

你可以在設備上試用嗎? –