2011-12-01 53 views
1

我是新的Android開發與Eclipse,我很難搞清楚如何配置我的應用程序,以便它能夠讀/寫文本到虛擬SD卡。SD卡沒有安裝(在eclipse中的Android應用程序開發)

我已經做了很多google'ing,並找到了點點滴滴,但我仍然覺得我失去了一些使它不起作用的東西。

在我的表現我已經包括:

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

這裏是我的代碼:

String state=Environment.getExternalStorageState(); 
    if(!state.equals(Environment.MEDIA_MOUNTED)) 
     data.setText("SD card not mounted"); 
    else 
    { 
     File externalDir=Environment.getExternalStorageDirectory(); 
     File textFile=new File(externalDir.getAbsolutePath()+File.separator+"text.txt"); 
     try 
     { 
      writeTextFile(textFile, "this is a test\n LINE BREAK"); 
      String text=readTextFile(textFile); 
      data.setText(text); 
      if(!textFile.delete()) 
      data.setText("couldn't remove temporary dir"); 
     } 
     catch(Exception e) 
     { 
      data.setText(e.getMessage()); 
     } 
    } 

private void writeTextFile(File file, String text) throws IOException 
{ 
    BufferedWriter writer = new BufferedWriter(new FileWriter(file)); 
    writer.write(text); 
    writer.close(); 
} 
private String readTextFile(File file) throws IOException 
{ 
    BufferedReader reader = new BufferedReader(new FileReader(file)); 
    StringBuilder text=new StringBuilder(); 
    String line; 
    while((line=reader.readLine())!=null) 
    { 
     text.append(line); 
     text.append("\n"); 
    } 
    reader.close(); 
    return text.toString(); 
} 

我有一個按鈕,點擊功能代碼的第一部分,而「數據」變量用於editText視圖。 每次我運行它,然後單擊按鈕,我得到結果「SD卡未安裝」。

我知道我錯過了某個地方的重要步驟,以使其正常運行。任何人都可以幫我解決問題嗎? 謝謝!

+0

你說「虛擬SD卡」,所以我假設這是與模擬器,而不是一個真正的設備?你已經配置了模擬器的AVD來使用虛擬SD卡? – Squonk

+0

在這一點上,我覺得真的很愚蠢。是的,我正在使用模擬器。 我剛剛意識到我必須編輯AVD才能使用虛擬SD卡。我在閱讀指示時非常難以理解。那麼它現在正在工作。 謝謝反正! – shane

+0

哈哈,沒問題。一年多前,我從來沒有使用eclipse,模擬器或爲Android編程。這是一個艱難的學習曲線,我們都必須從某個地方開始。一個技巧 - 指定一個小的(ish)SD卡大小(剛夠你需要的)。如果您指定1GB(例如),則仿真器將在開發機器上佔用大量內存。 – Squonk

回答

0

我認爲你正面臨這個問題,因爲你的模擬器可能沒有正確配置使用(或提供)SD卡功能。

因此,我會建議您訪問AVD管理器>編輯 AVD>指定您需要的SD卡的大小。

另外不要忘記添加硬件屬性到相同的AVD。選擇新建>「SD卡支持」>將其設置爲true

我認爲這將解決問題。如果它仍然屬於 - 在這裏做報告! 祝你好運! :)

0

我遇到了一個新的android 6. + avd這個問題,當我第一次啓動avd時沒有設置sdcard。它沒有正確創建符號鏈接。

它被符號鏈接到以下幾點:/mnt/user/0/primary

這裏是符號鏈接

/sdcard -> /storage/self/primary 
cd /storage/self 
ls -la 
primary -> /mnt/user/0/primary 
cd /mnt/user/0/ 

有沒有創建一級目錄。我重新創建了AVD並完成了設置SD卡的過程,現在生活非常棒!

相關問題