如何将文件保存到用户可访问的位置?

时间:2019-08-21 05:37:29

标签: android actionscript-3 air

我正在编写一个可以导入和导出数据的应用程序,我需要该数据的路径可供用户访问,但不能在SD卡上访问。我希望将其放置在Downloads文件夹旁边,或在没有root权限的情况下对文件浏览器可见的地方。我不想将数据保存到/ data / data,但是我想将其保存在/ storage / emulated / 0 /中。我不知道如何以支持所有Android设备的方式指定此位置。

我看过许多相似但并不完全相同的线程。保存到SD卡不是可取的,因为不是每个人都有外部存储,但是我也不想保存到File.applicationDirectory或File.applicationStorageDirectory,因为用户无法查看这些位置。

1 个答案:

答案 0 :(得分:0)

我不仅找到了自己的问题的答案,而且还找到了其他答案。为了在android上创建文件,您必须首先使用File.requestPermission()向用户询问存储权限。接下来,我在访问/ storage / emulated / 0时遇到问题,这是File.userDirectory和File.documentsDirectory指向的内容。我发现的是,此位置现在已在android 6(棉花糖)及更高版本中受到保护。 (由https://forums.androidcentral.com/samsung-galaxy-s8-and-s8-plus/802115-why-storage-emulated-0-empty.html提供)我没有使用该路径,而是按照该链接中的建议使用了/ sdcard。该目录的名称具有误导性,但是在阅读http://www.stevesandroidguide.com/android-files/之后,我发现sdcard-ext是文字sdcard,并且sdcard实际上是装入的内部存储。如果您的文件没有显示并且没有引发错误,请确保您具有存储权限。我发现此Adobe帖子带有有用的代码段,其中描述了如何检查权限以及如何请求权限:https://forums.adobe.com/thread/2250328

TL; DR

确保启用存储权限,并在处理android 6及更高版本时使用/ sdcard将文件存储在内部存储中。