2

問題の原因が何であるかはわかりません-バグのある古いAndroidバージョン、または何か間違ったことをしている場合、私の問題は、私が何をしても、AndroidがSDカードをマウントされていると報告することです. 物理的にタブレットに入っていなくても (archos 7o)..

public boolean saveToDisk(String filename, String header) {
    /* first check to see if the SD card is mounted */
    if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
        //throw some exception so we can display an error message 
        // XXX
        return false;
    }
    try {
        File root = Environment.getExternalStorageDirectory();
        File dir = new File(root.getAbsolutePath() + "/bioz");
        if (!dir.exists()) {
            dir.mkdirs();
        }
        File file = new File(dir, filename);
        ....

最初のテストは常に true です。getExternalStorageDirectory() は /mnt/storage で応答し、/mnt/storage/bioz が存在するかどうかを確認するテストは、ディレクトリが存在することを示します。

何が起こっているのか分かりますか?何か間違っているのでしょうか、API が壊れているのでしょうか、それとも何か他のことでしょうか?

ありがとう、レザ

4

1 に答える 1

3

外部ストレージは、少なくともすべてのデバイスで、SDカードと同じではありません。内部フラッシュメモリを備えたデバイス(たとえば、私のNexus Sにはあります)は、これを「外部ストレージ」として脅かしています。

これで、内部フラッシュとSDカードの両方を備えたデバイスが、外部メモリとして内部フラッシュを脅かし、SDカードがこの外部メモリの下にディレクトリとして追加されます。

プログラマーから見ると、それは苦痛ですが、私たちができることはあまりありません。

于 2011-10-17T06:46:06.877 に答える