0

私のアプリケーションでは、音声を録音してから再生していますが、デバイスに SD カードがない場合、またはデバイスがコンピュータに接続されている場合 (ディスク ドライブとしてのみマウント) に問題があるようです。これら2つのケースで何かを記録しようとすると、アプリケーションが閉じられました。

1 番目のケース(つまり、SD カードがない場合) :-

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

ケース1はこれを使って対処しました。しかし、 2番目のケース(つまり、デバイスがディスクとしてマウントされている場合)をどのように処理できますか。

さまざまなリンクをたどりましたが、必要なものが得られませんでした。前もって感謝します。

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

ちょっと答えがわかりました。これらの定数は、2番目のケースと最初のケースにも使用できます。解決策へのリンク。 http://developer.android.com/reference/android/os/Environment.html ありがとう

于 2013-02-12T10:07:41.990 に答える