【问题标题】:Files in Android Scoped Storage Get Randomly DeletedAndroid Scoped Storage 中的文件被随机删除
【发布时间】:2021-09-12 11:07:57
【问题描述】:

我在 Google Play 中有一个类似导航的应用程序,我最近切换到了范围存储。 应用程序需要下载地图文件(离线工作),然后使用osmdroid 库进行渲染。这些文件正在从osmdroid 文件夹下载和加载,该文件夹由osmdroidBasePath = File(requireContext().getExternalFilesDir(null), "osmdroid").apply { mkdirs() } 在应用程序启动时创建。还有一个名为 tiles 的子文件夹由 osmdroid 创建,作为在线切片的缓存:osmdroidTileCache = File(osmdroidBasePath, "tiles").apply { mkdirs() }

其中一位用户抱怨地图文件在一段时间后被随机删除,他需要重新下载。我无法在我的设备上重现此行为,但他提供了某种重现步骤:

  1. 已将应用程序更新为最新版本(12 天前)。
  2. 启动应用并下载地图文件。
  3. 关闭了设备或根本不使用该应用程序(他在多个设备上复制了它 - 三星 Android 11 和 Ulefone Android 10)。
  4. 今天在两台设备上启动该应用后,这两台设备都没有可用的地图文件。

他检查了 /storage/emulated/0/Android/data/app.package.name/osmdroid/ 中的地图文件目录的内容,那里只有tiles 子文件夹。下载的文件丢失了。

地图文件被删除的原因可能是什么?在没有用户交互的情况下,我没有应用程序逻辑来删除文件夹中的任何文件。他声称他没有使用任何“清洁”应用程序。

【问题讨论】:

  • 请提供您保存文件的方式/路径
  • 我使用 osmdroidBasePath 变量来保存和读取文件
  • 也许这是相关的? stackoverflow.com/questions/46501822/…我使用DownloadManager来下载地图。

标签: android osmdroid scoped-storage


【解决方案1】:

删除是由 DownloadIdleService 进行的,如此处所述Downloaded files get deleted automatically

我必须下载一个临时名称的文件(在名称末尾添加.download),复制文件并删除临时文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多