gpt4 book ai didi

android - Environment.getExternalStorageDirectory() 弃用替代方案

转载 作者:行者123 更新时间:2023-12-03 13:26:10 25 4
gpt4 key购买 nike

在 SDK 29 (Aka Android_Q) 中,使用 Environment.getExternalStorageDirectory() 方法访问外部存储已弃用,不再返回可访问的文件。

getExtenalStoragePublicDirectory(String type)

This method was deprecated in API level 29. To improve user privacy,direct access to shared/external storage devices is deprecated. When an app targets Build.VERSION_CODES.Q, the path returned from this method is no longer directly accessible to apps. Apps can continue to access content stored on shared/external storage by migrating to alternatives such as Context#getExternalFilesDir(String), MediaStore, or Intent#ACTION_OPEN_DOCUMENT.



但是使用 Context#getExternalFilesDir(String)返回 App-Data 文件夹内的文件夹。在您的应用程序卸载或数据清除时删除。
但考虑一下 WhatsApp 或 Facebook Messenger 等应用程序如何保存备份和下载,他们使用外部存储并创建自定义文件夹来存储数据。
此类应用程序将如何迁移?有没有新的方法?
我的应用程序是一个笔记应用程序,它将所有笔记备份到一个文件夹中,以便在应用程序删除或数据清除后恢复。在 SDK 29 中,我无法再遵循这种方法。

最佳答案

您可以使用 旗帜 android:requestLegacyExternalStorage="true"在您的 list 文件中。

在面向 Android 10 或更高版本的应用上,此属性默认为“false”。

但是,在 future 的 Android 版本中,此权限将不可用。

对于下一个 Android 版本,我们应该使用 范围存储 .
更多信息 here

关于android - Environment.getExternalStorageDirectory() 弃用替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57027531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com