Не удается найти каталог при загрузке - PullRequest
0 голосов
/ 10 февраля 2012

В моем приложении я создаю сервис, предназначенный для чтения чего-либо с SD-карты.

Сервис создается и запускается во время загрузки.

Проблема в том, что, хотя я довольноубедитесь, что каталог существует, во время загрузки служба не может найти каталог.

public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);
    Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
    Context context=getBaseContext();
    File sdDir = new File(Environment.getExternalStorageDirectory()+"/temp/Data/");
    if(!sdDir.exists()){
        sdDir.mkdir();
        Toast.makeText(this, "CAN'T FIND!", Toast.LENGTH_LONG).show();
    }
 }

Этот фрагмент кода выше выводит

  1. Служба запущена
  2. CAN 'T FIND!

Сначала я подумал, что SD-карта не может быть подключена во время загрузки, и поэтому служба не может найти каталог.Я все еще не уверен в этом.

У кого-нибудь есть идея?В чем может быть проблема?

1 Ответ

2 голосов
/ 10 февраля 2012

Некоторым устройствам требуется время для установки карты SD. Может быть недоступен сразу после загрузки.

Просто опрашивайте каждые несколько секунд, пока он не станет доступен.

Также попробуйте это:

public static boolean hasStorage(boolean requireWriteAccess) {  
    String state = Environment.getExternalStorageState();  

    if (Environment.MEDIA_MOUNTED.equals(state)) {  
        return true;  
    } else if (!requireWriteAccess  && Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {  
        return true;  
    }  
    return false;  
}

Отсюда

...