【问题标题】:How can I export a Room Database in Kotlin and send via email?如何在 Kotlin 中导出房间数据库并通过电子邮件发送?
【发布时间】:2021-11-23 05:56:53
【问题描述】:

我找到了以下 SO 问题,并尝试了此处提供的选项。也在寻找其他解决方案,但出于某种原因,想要导出数据库似乎是一件不常见的事情? Export Room database and attach to email Android Kotlin

解决方案 1

打开意图对话框,当我选择 Gmail 时,它会短暂显示附件,然后只显示“无法附加文件”的 toast。

解决方案 2

打开意图对话框,当我选择 Gmail 时,提示“附件的权限被拒绝”失败。

对于这两种解决方案,如果我尝试使用 Google Drive,它会显示无法安排文件上传。

在我的清单中我尝试添加

android.permission.READ_EXTERNAL_STORAGE 
android.permission.WRITE_EXTERNAL_STORAGE

但这并没有改变任何东西。

我被困在如何在此处继续操作,因为错误出现在 Gmail/Drive 中,并且没有显示任何日志让我了解问题所在!

我正在开发一个使用 Honeywell CT50 设备的项目,他们支持的最新版本的 Android 是 6.x,我想知道这是否会导致我的问题?

非常感谢任何帮助!

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    经过大量阅读和测试,我终于有了解决方案!在第一个提到的链接的解决方案 2 中的 exportDatabase 函数中,我已经改变了 from 而不是使用

    val parent = File(activity.filesDir, "databases_temp")
    val file = File(parent, "myDatabase")
    

    我现在改用“下载”文件夹。

    val file = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),"databse_export.db")
    

    getExternalStoragePublicDirectory 被标记为已折旧,但有效。

    第二个变化是provider_paths.xml 文件。不确定这是否必要?

    <?xml version="1.0" encoding="utf-8"?>
    <paths>
        <external-path name="external_files" path="."/>
    </paths>
    

    注意:这只在 Android 6 上测试过!

    【讨论】:

      猜你喜欢
      • 2019-05-28
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多