首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的三星A51安卓10的“内部存储”文件夹(主外部存储)中创建文件?

如何在我的三星A51安卓10的“内部存储”文件夹(主外部存储)中创建文件?
EN

Stack Overflow用户
提问于 2020-07-02 03:45:42
回答 1查看 135关注 0票数 0

我在目前的SDK中了解到,我的应用程序的外部存储文件是在/data/data/"package“文件夹中创建的。然而,我正在与另一个我无法控制的应用程序集成,它从“内部存储”读取(哪个是主外部存储?我的Android 10 (R)手机上的AARG!:)文件夹。我已经搜索了2天,如何在标记为“内部存储”(我的文件->内部存储)的文件夹中创建一个简单的.csv文件,但就是找不到一个解决方案来获取该位置的路径。

我将我的Android Studio设置为minSdkVersion为16,complileSdkVersion为28,这样至少我可以使用一些早期的文件管理方法。我希望我的应用能在至少3年以上的手机/平板电脑上运行。没有必要使用UI (选择器-正如新文档建议使用的那样)来选择一个文件夹来保存文件,只需创建一个文件就行了。我是一个老的Java程序员,但对Android是个新手。大多数帖子都指向我们在>28个SDK中丢失的已弃用函数。

EN

回答 1

Stack Overflow用户

发布于 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_DOCUMENTACTION_OPEN_DOCUMENT_TREE,并允许用户决定用户的文件在用户设备上的位置。

大多数帖子都指向我们在>28个SDK中丢失的不推荐使用的函数。

Android中的“弃用”并不总是意味着“失败”。它总是意味着“谷歌希望你考虑另一种选择,例如,Environment.getExternalStorageDirectory()仍然存在,甚至在安卓11中也是如此。它只是没那么有用,谷歌更希望你在StorageVolume上使用方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62684300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档