与文件存储最接近的文档是this post(如果无法访问,请参阅下面的内容),但这会给我留下几个问题。在角落上访问存储
我真的真的很喜欢关于什么路径映射到这里的存储空间的明智解释,看到我们应该如何对它们进行硬编码,以及我们期望如何精确访问它们。实际的代码示例将是最高级的。我最好的猜测是:
- /sdcard->映射到内部eMMC插槽,并且访问受到限制。 Environment.getExternalStorageDirectory(); ...仍然返回这个。
- /media - >映射到内部的8GB内存(我可以写到这个)
- /data - >?
- ? - >映射到可选的microSD卡
如何访问外部存储设备(可选,另外可以弹出的设备)sdcard,如果/sdcard maps to restricted storage instead?
我们引用的Nook开发者文档:
背景有对市场的今天,一个可用来在/ data分区 应用程序和一个角落 颜色设备只有250MB两种不同的分区方案4GB可用于/ data分区上的 应用程序。因此,应用程序的设计和开发势在必行 有效地管理空间。未能这样做的应用程序将不会被 通过商店接受分发。
领域相关技术建议或解决方案,如果你的 应用程序需要大量数据(包括但不限 于图片,音频或视频内容),你应该在运行时下载这些 资源,并将它们存储在更大的分区 设备。如果您的应用程序将请求和存储超过 100MB的数据或资源必须由以下 限制遵守:
您的应用程序中提供了大量的数据是描述 必须清楚和明确规定由 应用程序使用/交付。您必须将您的资源和数据写入适当的 分区。您可以检测,如果该设备具有放大/数据 分区如下:
StatFs stat = new StatFs("/data"); long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount(); long megAvailable = bytesAvailable/1048576; if (megAvailable > 1000){ ... write your resources in /data } else { ... write your resources on /mnt/media ... }
在此书写/数据
数据到应用程序的私人空间FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_WORLD_READABLE);
你的应用程序不应该承担 存在设备上的SD卡,但可以通过呼叫测试一个 至
Environment.getExternalStorageState();如果未找到SD卡, 您的应用程序必须正常退出,并通知用户 关于退出的原因。
记住,访问/媒体分区,以及 ExternalStorage你需要在你的清单声明:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> </uses-permission>
这似乎是不可能访问您提供的链接:http://nookdeveloper.zendesk.com/entries/20257971-updated-what-are-the-size -constraints-on-my-applications没有注册(这看起来不像一个单击过程)。你应该在某个地方复制讨论,这样更多的人可以访问它。 – Idolon
说文字被复制。 – Turnsole