0

在我的应用程序中,我正在录制语音然后播放,但是当我的设备没有 SD 卡或我的设备连接到我的计算机(仅安装为磁盘驱动器)时似乎出现了一些问题。每当我尝试在这两种情况下记录某些内容时,我的应用程序就会关闭。

第一种情况(即没有 SD 卡时):-

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

使用此处理案例 1 。但是当我的设备安装为 disk 时,我该如何处理第二种情况(即)。

我浏览了各种链接,但没有得到我想要的。提前致谢。

4

2 回答 2

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.
        }
    }
}
}
于 2013-02-12T07:40:02.597 回答
0

嘿,我刚刚得到了答案:我们可以将这些常量用于第二种情况,也可以用于第一种情况。解决方案的链接。 http://developer.android.com/reference/android/os/Environment.html 谢谢

于 2013-02-12T10:07:41.990 回答