java - 在 Android Studio 中更改数据库路径

标签 java android sqlite

我在 Android Studio 的 Sqlite 中使用 openOrCreateDatabase 保存了一个数据库。我知道它保存在 Android 设备的根文件夹中(特别是数据/数据),但我看不到原始数据库文件。

我在 Studio 中尝试了 adb shell 命令和 Android 设备管理器,但我看不到它。

有没有办法在不root手机的情况下更改数据库的路径或访问data/data中的数据库?

最佳答案

如果没有生根设备,您将无法访问数据文件夹。

但是您可以将数据库从数据文件夹复制到 SD 卡,例如下载文件夹

File backupDB = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "Database.db");
File currentDB = context.getDatabasePath(DATABASE_NAME);
if (currentDB.exists()) {
    FileChannel src = new FileInputStream(currentDB).getChannel();
    FileChannel dst = new FileOutputStream(backupDB).getChannel();
    dst.transferFrom(src, 0, src.size());
    src.close();
    dst.close();
}

还需要权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

关于java - 在 Android Studio 中更改数据库路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27899323/

相关文章:

java - Azure Toolkit 错误无法执行运行配置

java - Netbeans 中的 clean 和 build 错误

java - 计算不同的单词

c++ - 如何在 QTextEdit 面板中附加选择查询结果?

php - 无法通过PHP插入数据库

java - 为什么使用 System.out.printf() 而不是 System.out.println() 会导致超出时间限制?

android - 使用 Android App Wrapping Tool 运行 Invoke-AppWrappingTool 时出错

java - 单选按钮不起作用(简单代码)

android - 当我在 api 大于 19 的设备上运行我的应用程序时,它给我错误

objective-c - 以编程方式将菜单+项目添加到 NSPopupButton