android - 在 Android 11 上访问 SQLite 数据库
问题描述
我知道公共外部存储从 Android 11 更改。但我不确定将我的 SQLite 数据库放在哪里以及如何访问它。如果卸载了应用程序,则不得删除 Db。其他应用程序也必须能够访问此 SQLite 数据库。
在 Android 10 及以下版本中,我使用了:Android.OS.Environment.ExternalStorageDirectory.AbsolutePath 来获取我的 SQLite 数据库的路径。
我必须如何针对 Android 11 进行调整?
解决方案
Android 11(API 级别 30)进一步增强了平台,为外部存储上的应用和用户数据提供了更好的保护。此版本引入了多项增强功能,例如原始文件路径访问、媒体批量编辑操作以及存储访问框架的更新 UI。
该版本还对范围存储进行了改进,使开发人员在迁移到使用此存储模型后更容易实现其存储用例。
在 Android 11 上运行但面向 Android 10(API 级别 29)的应用仍然可以请求该requestLegacyExternalStorage
属性。此标志允许应用程序暂时选择退出与范围存储相关的更改,例如授予对不同目录和不同类型媒体文件的访问权限。将应用更新为面向 Android 11 后,系统会忽略该requestLegacyExternalStorage
标志。
有关更多详细信息,您可以查看文档:https ://developer.android.com/about/versions/11/privacy/storage 。
推荐阅读
- kubernetes - 如何找到 kube-proxy 正在运行的模式
- background-image - 如何创建可以在其中更改位置的 3D 缩放背景?
- arrays - 读取二进制文件以构造数组指针
- arrays - Powershell Array 正在打印项目索引以及值
- php - 如何根据项目的价格范围计算总成本
- reactjs - 如何在反应输入中设置状态值?
- r - 如何创建具有增量步长的向量?
- fonts - 在哪里可以找到 OTF 字体中的所有 CFF 字体变体集
- html - 像素中具有相同高度和宽度的元素呈现为非正方形
- visual-studio - 如何从 CMake 转换为普通的 Visual Studio 项目?