2011-09-27 103 views
0
public void initCache(Context context) 
{ 
    this.context = context; 
    //Find the dir to save cached images 
    if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
     cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"myapp"); 
    else 
     cacheDir=context.getCacheDir(); 
    if(!cacheDir.exists()) 
     cacheDir.mkdirs(); 
} 

我在清单文件中拥有正确的权限,同时我还安装了第sd卡。但尽管如此,我的应用程序正在写入内部存储。我正在使用摩托罗拉Atrix。在android中写入SD卡

+0

所以第一个IF失败? – LambergaR

+0

'android.os.Environment.getExternalStorageState()'的值是什么?这可能会让你知道发生了什么。 –

回答

0

Environment.getExternalStorageState()返回路径内部SD安装像“的/ mnt/SD卡”点

否,Environment.getExternalStorageDirectory()是指任何与设备制造商认为是“外部存储”。在某些设备上,这是可移动媒体,如SD卡。在某些设备上,这是设备上闪光灯的一部分。在这里,“外部存储”是指“安装在主机上时可通过USB Mass Storage模式访问的东西”,至少对于Android 1.x和2.x.

但问题是关于外部SD。如何获得像“/ mnt/sdcard/external_sd”这样的路径(它可能因设备而异)?

除了外部存储,Android没有“外部SD”的概念,如上所述。

如果设备制造商选择将外部存储设备设置为板载闪存并且还具有SD卡,则需要联系该制造商以确定您是否可以使用SD卡(不保证)以及什么规则是使用它的,比如使用什么路径。