繁体   English   中英

Android Q:范围存储中的 SQLite 数据库

[英]Android Q: SQLite database in scoped storage

在 Android Q 中引入了新的Scoped 存储功能,它说:

默认情况下,面向 Android 10(API 级别 29)及更高版本的应用会获得对外部存储或范围存储的范围访问。 此类应用程序只能访问外部存储上的应用程序特定目录,以及应用程序创建的特定类型的媒体。

我有我的应用程序,它在外部存储上创建 SQLite 数据库,这样当应用程序卸载数据库时,数据库仍然存在,以后可以用作恢复或在 Android 设备之外使用(假设在 PC 中)

我应该如何实现与 Android Q 相同的效果? 更准确地说,如果数据库存储在外部公共目录中 - 如何使用标准SQLiteOpenHelper读取此数据库?

您可以尝试使用文档中的解决方案:
https://developer.android.com/training/data-storage/compatibility

  • 面向 Android 9(API 级别 28)或更低版本。
  • 如果您面向 Android 10(API 级别 29)或更高版本,请在应用的清单文件中将requestLegacyExternalStorage的值设置为true
<manifest ... >
    <!-- This attribute is "false" by default on apps targeting Android 10 or higher. -->
    <application android:requestLegacyExternalStorage="true" ... >
    ...
    </application>
</manifest>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM