java之安卓Q : SQLite database in scoped storage

xiaohuochai 阅读:50 2024-06-20 12:54:19 评论:0

在 Android Q 中引入了新的 Scoped storage功能,其中说:

apps that target Android 10 (API level 29) and higher are given scoped access into external storage, or scoped storage, by default. Such apps have access only to the app-specific directory on external storage, as well as specific types of media that the app has created.



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

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

请您参考如下方法:

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

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


    标签:java
    声明

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    关注我们

    一个IT知识分享的公众号