2013-02-12 39 views
0

在我的應用程序中,我正在錄製語音,然後再播放,但當我的設備沒有SD卡或設備連接到我的電腦時出現問題(僅作爲磁盤驅動器安裝)。當我試圖在這兩種情況下記錄某些內容時,我的應用程序就會關閉。SD卡插入或設備安裝爲DIsk

第一殼體(即當NO SD卡): -

Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 

案例1使用這種處理。但我怎樣才能處理第二種情況(即)當我的設備安裝爲磁盤

我已經通過各種鏈接,但沒有得到我想要的。 在此先感謝。

+0

我想知道爲什麼case2沒有覆蓋相同的測試? – Henry 2013-02-12 07:43:27

+0

@ Henry-實際上我只是想要在這些情況下使用兩種不同的敬酒信息。以及我在第一種情況下使用哪些代碼,但不區分這兩種情況。 – Manish 2013-02-12 07:58:48

回答

0

試試這個:

String s = ""; 
try { 
Process process = new ProcessBuilder().command("mount") 
     .redirectErrorStream(true).start(); 

process.waitFor(); 

InputStream is = process.getInputStream(); 
byte[] buffer = new byte[1024]; 
while (is.read(buffer) != -1) { 
    s = s + new String(buffer); 
} 
is.close(); 
} catch (Exception e) { 
e.printStackTrace(); 
} 

String[] lines = s.split("\n"); 
for(int i=0; i<lines.length; i++) { 
if(-1 != lines[i].indexOf(path[0]) && -1 != lines[i].indexOf("vfat")) { 
    String[] blocks = lines[i].split("\\s"); 
    for(int j=0; j<blocks.length; j++) { 
     if(-1 != blocks[j].indexOf(path[0])) { 
      //Test if it is the external sd card. 
     } 
    } 
} 
}