首页 > 解决方案 > 在 Android 11 上访问 SQLite 数据库

问题描述

我知道公共外部存储从 Android 11 更改。但我不确定将我的 SQLite 数据库放在哪里以及如何访问它。如果卸载了应用程序,则不得删除 Db。其他应用程序也必须能够访问此 SQLite 数据库。

在 Android 10 及以下版本中,我使用了:Android.OS.Environment.ExternalStorageDirectory.AbsolutePath 来获取我的 SQLite 数据库的路径。

我必须如何针对 Android 11 进行调整?

标签: androidsqlitexamarinandroid-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 。


推荐阅读