3

众所周知,从 Android Q (API=29) 开始引入了新的Scoped Storage概念,它基本上阻止了对外部文件/目录的访问,媒体文件除外。即:

  1. 程序员可以使用内部/应用程序特定的存储(无限制) -getFilesDir()
  2. 唯一可以访问的外部存储是 via getExternalFilesDir(),但在应用程序卸载期间数据将被删除
  3. 可以选择通过 访问外部存储MediaStore,但它仅适用于媒体文件
  4. 应用程序仍然可以通过以下方式读取任何外部文件:getContentResolver().openInputStream(uri)

在我的例子中,我有一个应用程序,它将用户数据存储在应用程序特定目录中的 SQLite 数据库中,数据库大小可以达到几个演出。

在我的应用程序的所有以前版本中,用户习惯于将数据备份到外部存储/SD/USB 并将这些数据传输到他们的新设备,以便他们可以继续使用数据(它是包含任何类型私人数据的加密数据库,包括音频/视频/文件等)。

问题:我怎样才能备份这个数据库?我无法找到合适的方法将数据保存/备份到任何外部存储...

由于数据库的大小,PS Android 自动备份服务无法使用。

4

0 回答 0