如何处理内置存储和外部SD卡?

时间:2013-07-26 13:32:14

标签: android storage sd-card

好的,所以我做了尽可能多的研究,试图弄清楚我做错了什么,但谷歌或Android教程中的任何内容都无法在我的场景中真正回答我。

情景:

假设我的Android设备配有16GB的内置存储空间。我们还假设该设备具有32GB SD标准。基本上,该设备总共有48GB的存储空间。我的应用需要扫描设备上的每个用户可访问的位置。换句话说,我需要能够访问和读取普通用户(非root用户)可以读取和写入的每个位置。

我现在在做什么:

我正在使用推荐的Environment.getExternalStorageDirectory(),它指向/mnt/sdcard

问题:

Environment.getExternalStorageDirectory()是否允许我访问设备上的每个用户可访问的存储空间?我很困惑,因为可以有16GB的内置存储和32GB的SD卡存储,但Android如何处理这两个独立的位置?它只是简单地将两者合并为单个/mnt/sdcard,还是只能用我的代码行访问两个存储目录中的一个?

很抱歉,如果这听起来像一个菜鸟问题,但是来自iPhone背景,其中唯一可用的存储是内部存储,我真的被Android处理这种情况的方法所困扰。谢谢你的帮助!

1 个答案:

答案 0 :(得分:6)

  

Environment.getExternalStorageDirectory()是否允许我访问设备上每个用户可访问的存储?

没有。它指向external storage

  

Android如何处理两个不同的位置?

Android本身大多只关心指定为外部存储的一个位置。除此之外的任何设备都是特定于设备的,并且由制造商(或者可能是ROM mod维护者)决定。

这就是为什么您在当前的Android SDK中看不到任何可以被视为“外部存储”的多个卷的原因。

  

它是否只是将两者合并为单数/ mnt / sdcard

没有

  

或者我只能用我的代码行访问两个存储目录中的一个?

更新:我写了a series of blog posts,试图帮助开发人员了解Android存储情况。