长期以来的iOS开发人员,高级Android程序员(但不像我想象的那样先进...... LOL)..
尝试了解Android设备存储选项。在我的Android设备上,我有一个14Gig SD卡。
当我编写代码时
String strDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)+ File.separator + "MyFolder";
它被放置在" Documents文件夹"在内部设备上(使用文件管理器查看时)。
路径似乎是
存储/模拟/ 0
和我的SD卡(根据文件管理器)是
存储/ extSdCard
为什么 Environment.getExternalStoragePublicDirectory 会给我一条通往我的内卡的路径?
我错过了什么让我找到将文件存储到外部卡的路径。我想我明白这部分是针对4.1中SD卡访问的操作系统更改,但不确定我错过了什么。
我已阅读Environment.getExternalStorageDirectory does not return the path to the removable storage但尚不清楚。我的应用程序目前使用 getExternalStoragePublicDirectory 存储文件,但我的用户要求他们可以选择将其存储在SD卡上吗?
答案 0 :(得分:4)
为什么Environment.getExternalStoragePublicDirectory会给我一条通往我的内卡的路径?
因为external storage不是removable storage。这些都不是internal storage。
但是我的用户要求他们可以选择将其存储在SD卡上吗?
在Android 4.4及更高版本上,使用the Storage Access Framework(允许用户选择存储位置,包括可移动存储,Drive / Dropbox /其他云提供商等)或use getExternalFilesDirs()
on Context
。后一种方法返回@ = means I have different props for each module
<Header @/>
<Background imgName={"@.jpg"}/>
<Footer @/>
- 如果数组中有2个以上的元素,除了第一个元素之外的所有元素都是可读取和写入的可移动存储上的位置。您无法在Android 4.4 +附带的设备上的可移动存储上写入任意位置。