在启动时找不到目录

时间:2012-02-10 15:53:10

标签: android file boot android-sdcard

在我的应用程序中,我创建了一个旨在从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. 无法找到!
  3. 起初,我认为SD卡可能不会在启动时挂载,这就是服务无法找到目录的原因。我仍然不确定。

    有人有想法吗?可能是什么问题?

1 个答案:

答案 0 :(得分:2)

某些设备需要一些时间来安装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;  
}

From Here