我在目前的SDK中了解到,我的应用程序的外部存储文件是在/data/data/"package“文件夹中创建的。然而,我正在与另一个我无法控制的应用程序集成,它从“内部存储”读取(哪个是主外部存储?我的Android 10 (R)手机上的AARG!:)文件夹。我已经搜索了2天,如何在标记为“内部存储”(我的文件->内部存储)的文件夹中创建一个简单的.csv文件,但就是找不到一个解决方案来获取该位置的路径。
我将我的Android Studio设置为minSdkVersion为16,complileSdkVersion为28,这样至少我可以使用一些早期的文件管理方法。我希望我的应用能在至少3年以上的手机/平板电脑上运行。没有必要使用UI (选择器-正如新文档建议使用的那样)来选择一个文件夹来保存文件,只需创建一个文件就行了。我是一个老的Java程序员,但对Android是个新手。大多数帖子都指向我们在>28个SDK中丢失的已弃用函数。
发布于 2020-07-02 04:21:45
我在目前的SDK中了解到,我的应用程序的外部存储文件是在/data/data/"package“文件夹中创建的。
不,那是internal storage。
但是,我正在与另一个我无法控制的应用程序集成,它从“内部存储”读取(哪个是主外部存储?我的Android 10 (R)手机上的AARG!:)文件夹
该应用程序将需要尽快更新。
我已经搜索了2天,如何在标记为“内部存储”(我的文件->内部存储)的文件夹中创建一个简单的.csv文件,但就是找不到一个解决方案来获取该位置的路径
对于Android10及更低版本,您可以使用Environment.getExternalStorageDirectory()作为external storage的根目录。请注意,对于Android10本身,您需要在<application>元素中添加android:requestLegacyExternalStorage="true"。
在Android 11+上,您不能再使用文件系统API写入外部存储的根目录,除非您持有MANAGE_EXTERNAL_STORAGE。如果你计划通过Play Store (也许在其他地方)分发你的应用程序,那么这一许可将需要证明使用的合理性。
没有必要使用UI (选择器-新文档建议使用的方式)来选择要保存文件的文件夹
用户可能不同意您的观点。谷歌绝对不同意你的观点。在安卓11上,如果你不希望你的应用程序在Play Store中被禁止,你将需要使用ACTION_CREATE_DOCUMENT或ACTION_OPEN_DOCUMENT_TREE,并允许用户决定用户的文件在用户设备上的位置。
大多数帖子都指向我们在>28个SDK中丢失的不推荐使用的函数。
Android中的“弃用”并不总是意味着“失败”。它总是意味着“谷歌希望你考虑另一种选择,例如,Environment.getExternalStorageDirectory()仍然存在,甚至在安卓11中也是如此。它只是没那么有用,谷歌更希望你在StorageVolume上使用方法。
https://stackoverflow.com/questions/62684300
复制相似问题