2012-02-10 74 views
0

在我的应用程序中,我创建了一个旨在从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 NOT FIND!

起初,我以为SD卡可能不会在启动时装入,这就是为什么服务无法找到目录。我对此还不确定。

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

回答

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

相关问题