【发布时间】:2019-07-14 12:39:29
【问题描述】:
在 SDK 29(又名 Android_Q)中,不推荐使用 Environment.getExternalStorageDirectory() 方法访问外部存储,并且不再返回可访问的文件。
getExtenalStoragePublicDirectory(字符串类型)
此方法在 API 级别 29 中已弃用。为了提高用户隐私,不建议直接访问共享/外部存储设备。当应用程序以 Build.VERSION_CODES.Q 为目标时,从此方法返回的路径不再可供应用程序直接访问。通过迁移到 Context#getExternalFilesDir(String)、MediaStore 或 Intent#ACTION_OPEN_DOCUMENT 等替代方案,应用可以继续访问存储在共享/外部存储上的内容。
但使用 Context#getExternalFilesDir(String) 会在您的 App-Data 文件夹中返回一个文件夹。在您的应用卸载或数据清除时删除。
但请考虑 WhatsApp 或 Facebook Messenger 等应用如何保存备份和下载,使用外部存储并创建自定义文件夹来存储数据。
此类应用将如何迁移?有新方法吗?
我的应用程序是一个笔记应用程序,它将所有笔记备份到一个文件夹中,以便在应用程序删除或数据清除后恢复。在 SDK 29 中,我无法再遵循这种方法。
【问题讨论】:
标签: android