2011-10-17 94 views
2

我不確定問題的根源是什麼 - 舊的android版本有錯誤,或者如果我做錯了什麼,但是我的問題是不管我做什麼, android會報告已安裝的SD卡。即使它不是物理上的平板電腦(愛可視70)..安裝SD卡的安裝檢查總是返回true

public boolean saveToDisk(String filename, String header) { 
    /* first check to see if the SD card is mounted */ 
    if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { 
     //throw some exception so we can display an error message 
     // XXX 
     return false; 
    } 
    try { 
     File root = Environment.getExternalStorageDirectory(); 
     File dir = new File(root.getAbsolutePath() + "/bioz"); 
     if (!dir.exists()) { 
      dir.mkdirs(); 
     } 
     File file = new File(dir, filename); 
     .... 

第一個測試始終是真實的,getExternalStorageDirectory()用的/ mnt /存儲和測試響應,看是否到/ mnt /存儲/ bioz存在表示該目錄確實存在。

任何想法是怎麼回事?我做錯了什麼,API是壞了還是別的?

謝謝, 禮

回答

2

外部存儲是不一樣的SD卡,至少不會在所有設備上。具有內部閃存的設備(例如我的Nexus S)會將此設置爲「外部存儲」。

現在,具有內部閃存和SD卡,威脅內部閃存作爲外部存儲器和SD卡的設備將作爲目錄添加到此外部存儲器下。

程序員認爲這是一個痛苦,但我們可以做的不多。

+0

我的Acer Iconia(Android 3.2)再次以不同的方式對待它,它的內部存儲爲/ sdcard /和/ mnt/sdcard /,但真正的SD卡只出現在/ mnt/external_sd – jsnfwlr

+0

@phalacee:謝謝你的信息。是的,這是SDK未實現的一個領域。 –

+0

那麼在寫入SD卡方面什麼是正確的策略? – reza