好的,所以我做了尽可能多的研究,试图弄清楚我做错了什么,但谷歌或Android教程中的任何内容都无法在我的场景中真正回答我。
情景:
假设我的Android设备配有16GB的内置存储空间。我们还假设该设备具有32GB SD标准。基本上,该设备总共有48GB的存储空间。我的应用需要扫描设备上的每个用户可访问的位置。换句话说,我需要能够访问和读取普通用户(非root用户)可以读取和写入的每个位置。
我现在在做什么:
我正在使用推荐的Environment.getExternalStorageDirectory()
,它指向/mnt/sdcard
。
问题:
Environment.getExternalStorageDirectory()
是否允许我访问设备上的每个用户可访问的存储空间?我很困惑,因为可以有16GB的内置存储和32GB的SD卡存储,但Android如何处理这两个独立的位置?它只是简单地将两者合并为单个/mnt/sdcard
,还是只能用我的代码行访问两个存储目录中的一个?
很抱歉,如果这听起来像一个菜鸟问题,但是来自iPhone背景,其中唯一可用的存储是内部存储,我真的被Android处理这种情况的方法所困扰。谢谢你的帮助!
答案 0 :(得分:6)
Environment.getExternalStorageDirectory()是否允许我访问设备上每个用户可访问的存储?
没有。它指向external storage。
Android如何处理两个不同的位置?
Android本身大多只关心指定为外部存储的一个位置。除此之外的任何设备都是特定于设备的,并且由制造商(或者可能是ROM mod维护者)决定。
这就是为什么您在当前的Android SDK中看不到任何可以被视为“外部存储”的多个卷的原因。
它是否只是将两者合并为单数/ mnt / sdcard
没有
或者我只能用我的代码行访问两个存储目录中的一个?
是
更新:我写了a series of blog posts,试图帮助开发人员了解Android存储情况。