Проверка Android на установленную SD-карту всегда возвращает true - PullRequest
2 голосов
/ 17 октября 2011

Я не уверен, что является источником проблемы - более старая версия 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);
        ....

Первый тест всегда верен, getExternalStorageDirectory () отвечает с помощью / mnt / storage, и тест на наличие / mnt / storage / bioz указывает, что каталог существует.

Есть идеи, что происходит? Я что-то не так делаю, API сломан или что-то еще?

Спасибо, Реза

1 Ответ

3 голосов
/ 17 октября 2011

Внешнее хранилище отличается от SD-карты, по крайней мере, не на всех устройствах. Устройства, которые имеют внутреннюю флэш-память (например, мой Nexus S), угрожают этому как «внешнее хранилище».

Теперь устройства с внутренней флэш-памятью и SD-картой, угрозой внутренней флэш-памяти в качестве внешней памяти и SD-картой, затем добавляются в качестве каталога в эту внешнюю память.

С точки зрения программистов, это боль, но мы мало что можем с этим поделать.

...