在android中写入SD卡

时间:2011-09-27 04:32:02

标签: android external sd-card

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。

1 个答案:

答案 0 :(得分:0)

  

Environment.getExternalStorageState()返回内部SD挂载点的路径,如“/ mnt / sdcard”

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

  

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

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

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