android - SQLite 数据库未显示在文件资源管理器中

标签 android android-sqlite

我的应用程序中有一个 SQLite 数据库。当我在文件资源管理器中检查数据库是否已创建时,data 文件夹中没有任何数据库文件。它甚至没有使用 adb shell 命令显示。这是否意味着数据库尚未创建?关于如何解决这个问题有什么建议吗?

最佳答案

如果您使用的是真实设备,除非您对手机进行 root,否则您将无法从外部查看或访问它。

如果您使用的是模拟器,DDMS View 会让您导航到它并从那里拉出它。

或者,您可能在创建数据库时遇到问题。如果没有看到您的代码,我们无法判断。

编辑

如果您想从真实设备上获取文件,您需要实现一种方法,将其从您的数据目录复制到您有权访问的某个位置(例如您的 SD 卡)。这可以解决问题:

public void backup() {
    try {
        File sdcard = Environment.getExternalStorageDirectory();
        File outputFile = new File(sdcard,
                "YourDB.bak");

        if (!outputFile.exists()) 
             outputFile.createNewFile(); 

        File data = Environment.getDataDirectory();
        File inputFile = new File(data, "data/your.package.name/databases/yourDB");
        InputStream input = new FileInputStream(inputFile);
        OutputStream output = new FileOutputStream(outputFile);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = input.read(buffer)) > 0) {
            output.write(buffer, 0, length);
        }
        output.flush();
        output.close();
        input.close();
    } catch (IOException e) {
        e.printStackTrace();
        throw new Error("Copying Failed");
    }
}

关于android - SQLite 数据库未显示在文件资源管理器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11150103/

相关文章:

java - 如何实现新的 Google Play 服务(分析)?

java - Android SQLite 更新行不起作用

java - NullPointerException SQLiteAssetHelper

android - 这是在 android 的本地内存中存储自定义数组列表的更好方法

android - 事件点击 android.support.design.widget.NavigationView 上的项目

Java HttpsURLConnection 响应 JSON 数组

Android ListView 分隔符奇怪的问题

android - 将一行从一个 ListView 发送到另一个 ListView

android - ActiveAndroid Update() 查询

android - Android Honeycomb 有文件大小限制吗?