SD卡插入或设备安装为DIsk

时间:2013-02-12 07:27:02

标签: android android-sdcard

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

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

Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
使用此处理

案例1 。但是如何处理第二种情况(即)当我的设备挂载为磁盘时。

我已经通过各种链接,但没有得到我想要的。 提前谢谢。

2 个答案:

答案 0 :(得分: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.
        }
    }
}
}

答案 1 :(得分:0)

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