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。
答案 0 :(得分:0)
Environment.getExternalStorageState()
返回内部SD挂载点的路径,如“/ mnt / sdcard”
不,Environment.getExternalStorageDirectory()
是指设备制造商认为是“外部存储”的任何内容。在某些设备上,这是可移动媒体,如SD卡。在某些设备上,这是设备上闪存的一部分。这里,“外部存储”是指“安装在主机上时通过USB大容量存储模式可访问的内容”,至少对于Android 1.x和2.x。
除了外部存储之外,Android没有“外部SD”的概念,如上所述。但问题是关于外部SD。如何获得像“/ mnt / sdcard / external_sd”这样的路径(它可能因设备而异)?
如果设备制造商选择将外部存储设备作为板载闪存并且还具有SD卡,则需要与该制造商联系以确定是否可以使用SD卡(不保证)以及规则用于使用它,例如使用它的路径。