在android中写入SD卡
问题描述:
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卡
答
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卡(不保证)以及什么规则是使用它的,比如使用什么路径。
所以第一个IF失败? – LambergaR
'android.os.Environment.getExternalStorageState()'的值是什么?这可能会让你知道发生了什么。 –