2013-05-29 90 views
0

我有一個帶有SD卡插槽的電話(B15 CAT)。當我在這款手機中插入SD卡,並要求外部存儲目錄中:如何獨立管理外部存儲

Environment.getExternalStorageDirectory() 

它總是返回sdcard0的空白,這是內部存儲器。這個記憶對我的需要來說太小了。 通過列表/ mnt我找到了一個名爲/ sdcard2的掛載點,它是「真正的」scard。 不幸的是sdcard2並不似乎是一個標準和其他一些品牌會用一些其他的名字......

明知getExternalStorageDirectory()似乎工作電話如預期,沒有SD卡插槽,如Nexus 4,應該如何我處理外部存儲以確保在sdcard(可用的大空間)上寫入,而不是在內部存儲器上寫入?

我已經試過這樣的事情:

File mnt = new File("/mnt"); 
File[] liste = mnt.listFiles(); 
boolean hassd2 = false; 

for(File mount : liste) { 
    if(folder.getName().equals("sdcard2") { 
     hassd2 = true; 
     break; 
    } 
} 

String path = ""; 
if(hassd2) { 
    path = "/sdcard2/my/folder/" 
} else { 
    File p = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/my/folder/"); 
    path = p.toString(); 
} 

它的工作,但僅與此特定的手機和其他人一個不帶SD卡插槽...

回答

0

我還與建設中存在的問題在安裝多個「外部」存儲的情況下,Android的功能。我直接從f_stab文件解析掛載的目錄。

link應該給你你需要的代碼。

獲得掛載點後,您可以嘗試計算可用空間以決定是否足夠用於您的操作。