微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

文档中您可以看到:

getExternalStoragePublicDirectory(String type)

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

不向此函数传递任何参数作为参数,以将目录作为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类,这就是为什么我们可以从中获取上下文的原因。

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。