android设备上sqlite数据库的默认位置不显示我的数据库

时间:2015-03-02 11:51:02

标签: android mysql sqlite bluetooth

我是android的新手。在我的项目中,我通过蓝牙发送从下拉(旋转器)中选择的数据。

我创建了一个数据库并将值加载到微调器中并通过蓝牙发送所选值。它工作正常。现在问题是我知道数据库是创建的,因为我正在为微调器显示其值。现在我想以表格的形式显示提交的选定微调器数据。

我无法查看已创建的数据库。比如说。我们有php myadmin以防止php查看和操作数据库。 Android中有什么东西是这样的。我已经尝试在DDMS中使用Android设备监视器并选择数据/数据来查找数据库,但它没有显示任何数据库。可能是什么问题?它必须在数据/数据中显示类似com com.projectname的内容,但它没有显示相同的内容。

1 个答案:

答案 0 :(得分:3)

出于安全考虑,您无法直接在Android设备上访问数据库。但是如果您在模拟器上进行测试,您将能够从File explorer(Eclipse)中查看数据库。步骤进行:

  1. 转到窗口>显示视图>选择文件资源管理器(如果列表中没有它,请单击底部的其他选项以获取更多选项)。
  2. 选择文件资源管理器。
  3. 您的数据库将位于数据文件夹和您的包名称下。
  4. 拉出数据库文件。
  5. 在浏览器中安装SQLite manager add-on。
  6. 将数据库文件加载到其中,您就可以在那里看到完整的数据库。
  7. 如果您的数据库位于Android设备上,请使用以下代码将数据库复制到SD卡中的其他位置,然后从PC上手动复制并在SQLite Manager中加载该文件。

    /**
     * Export your database file
     */
    private void exportDB() {
    
        String SAMPLE_PKG_NAME = "com.example.android";// your package name
        String SAMPLE_DB_NAME = "database"; // your database name
    
        String path = Environment.getExternalStorageDirectory() + "/Android";
        File sd = new File(path);
        if (sd.exists()) {
            Log.d("Database", "EXISTS");
        }
        File data = Environment.getDataDirectory();
        FileChannel source = null;
        FileChannel destination = null;
        String currentDBPath = "/data/" + SAMPLE_PKG_NAME + "/databases/"
                + SAMPLE_DB_NAME;
        String backupDBPath = SAMPLE_DB_NAME;
        File currentDB = new File(data, currentDBPath);
        File backupDB = new File(sd, backupDBPath + ".sqlite");
        try {
            source = new FileInputStream(currentDB).getChannel();
            destination = new FileOutputStream(backupDB).getChannel();
            destination.transferFrom(source, 0, source.size());
            source.close();
            destination.close();
            Toast.makeText(this, "DB Exported!", Toast.LENGTH_LONG).show();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }