当前位置: 首页 > 面试题库 >

如何在API 29中弃用getExternalStorageDirectory来读写文件?

公西星文
2023-03-14
问题内容

我是android开发的新手,我在阅读java中的getExternalStorageDirectory时遇到了一些问题,我已经阅读了https://developer.android.com/reference/android/os/Environment,但无法理解,有人可以帮我举例吗Java代码


问题答案:

从文档中您可以看到:

getExternalStoragePublicDirectory(String type)

在API级别29中不赞成使用此方法。为了提高用户隐私,不建议直接访问共享/外部存储设备。
当应用程序定位到Build.VERSION_CODES.Q时,此方法返回的路径不再可供应用程序直接访问。通过迁移到
Context#getExternalFilesDir(String),MediaStore或Intent#ACTION_OPEN_DOCUMENT之类的
替代方案,应用程序可以继续访问共享/外部存储中存储的内容


不向此函数传递任何参数作为参数,以将目录作为File对象:

context.getExternalFilesDir();

这里的“上下文”是通过以下方式获得的对象 this.getContext();

this是活动的当前对象。使用时请仔细检查示波器。

重要

要访问内部存储,Manifest.permission.WRITE_EXTERNAL_STORAGE和/或Manifest.permission.READ_EXTERNAL_STORAGE需要访问文件AndroidManifest.xml。

可选信息:

  1. 通常,内部存储在Android设备上的路径为/ sdcard /。这不是真正的路径,而是符号链接。

  2. 这很令人困惑,但是Android中的“外部sdcard”实际上意味着内部设备存储,而不是外部可弹出设备外存储卡存储。另请注意,真正的外部sdcard无法完全访问

  3. Activity类扩展了Context类,这就是为什么我们可以从中获取上下文的原因。



 类似资料:
  • 如何从文件中读取文本并将文本写入文件? 我一直在学习如何在文件中读写文本。我发现了另一个关于从资产中读取的问题,但这是不同的。我将根据从文档中学到的知识,在下面添加我的答案。

  • 问题内容: 我有两个String 。 现在,我想将其保存在一个外部文件中以供以后使用,而无需再次对其进行初始化… 那么,如何保存以便以后再次使用? 问题答案: 实现,因此您可以使用常规序列化将哈希映射写入文件 这是Java的链接-序列化示例

  • 问题内容: 我正在尝试从文本文件中读取UTF8文本,然后将其中一些打印到另一个文件中。我正在使用Linux和gcc编译器。这是我正在使用的代码: 目前,它适用于英文字符。 问题答案: 这段代码对我有用:

  • 问题内容: 我有一个包含内容的文件 如何使用Python 阅读? 同样,如果我有 如何data使用Python 写入CSV文件? 问题答案: 以下是一些最小的完整示例,这些示例如何读取CSV文件以及如何使用Python编写CSV文件。 Python 2 + 3:读取CSV文件 Python 之后,的内容data_read是 Unicode和Python 2.X 如果要编写Unicode,则必须安装

  • 需要一些快速帮助。我正在尝试编写一个java程序来生成一个报告。我在一个docx文件中有报告模板。 我想要做的是,使用该docx文件作为模板,将数据多次放入其中,用于各种记录,并将其写入一个新的docx文件。主要的事情是我想维护docx文件中内容的格式和缩进。它们是子弹数据。这就是问题所在。 下面是处理上述操作的代码段, 如果可以请引导。多谢.

  • 问题内容: 我一直在寻找官方的php文档,但找不到我想要的东西。 http://php.net/manual/zh/function.parse-ini- file.php 我只想要一个函数来编辑和读取php ini文件中的值,例如, 如何读取属于“ lu_link”或“ footerbg”的值? 我该如何为这些地点写下新的价值? 问题答案: PEAR Config_Lite包可以非常轻松地为您完