android 设备上的 sqlite 数据库的默认位置未显示我的数据库
default location for sqlite databases on an android device is not displaying my database
我是 android 的新手。在我的项目中,我通过蓝牙发送从下拉列表(微调器)中选择的数据。
我已经创建了一个数据库并将值加载到微调器中并通过蓝牙发送了选定的值。它工作正常。现在的问题是我知道数据库是在我为微调器显示它的值时创建的。现在我想在提交时以 table 的形式显示选定的微调器数据。
我无法查看我已经创建的数据库。说例如。在 php 的情况下,我们有 php myadmin 查看和操作数据库。 android 中有这样的东西吗?我已经尝试在 DDMS 中使用 Android 设备监视器并选择 data/data 来查找数据库,但它没有显示任何数据库。可能是什么问题?它必须在 data/data 中显示类似 com com.projectname 的内容,但显示的内容不一样。
出于安全考虑,您不能直接在 Android 设备上访问数据库。但如果您在模拟器上进行测试,您将能够从文件资源管理器 (Eclipse) 中看到数据库。步骤:
- 转到 Window > 显示视图 > Select 文件资源管理器(如果它不在列表中,请单击底部的其他以获取更多选项)。
- Select 文件资源管理器。
- 您的数据库将位于 data 文件夹和您的包名称下。
- 拉取数据库文件。
- 在浏览器中安装 SQLite 管理器插件。
- 将您的数据库文件加载到其中,您将能够在那里看到完整的数据库。
如果您的数据库位于 Android 设备上,请使用以下代码将您的数据库复制到 SD 卡中的另一个位置,然后从那里手动将其复制到您的 PC 上并在 SQLite 管理器中加载该文件.
/**
* 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();
}
}
我是 android 的新手。在我的项目中,我通过蓝牙发送从下拉列表(微调器)中选择的数据。
我已经创建了一个数据库并将值加载到微调器中并通过蓝牙发送了选定的值。它工作正常。现在的问题是我知道数据库是在我为微调器显示它的值时创建的。现在我想在提交时以 table 的形式显示选定的微调器数据。
我无法查看我已经创建的数据库。说例如。在 php 的情况下,我们有 php myadmin 查看和操作数据库。 android 中有这样的东西吗?我已经尝试在 DDMS 中使用 Android 设备监视器并选择 data/data 来查找数据库,但它没有显示任何数据库。可能是什么问题?它必须在 data/data 中显示类似 com com.projectname 的内容,但显示的内容不一样。
出于安全考虑,您不能直接在 Android 设备上访问数据库。但如果您在模拟器上进行测试,您将能够从文件资源管理器 (Eclipse) 中看到数据库。步骤:
- 转到 Window > 显示视图 > Select 文件资源管理器(如果它不在列表中,请单击底部的其他以获取更多选项)。
- Select 文件资源管理器。
- 您的数据库将位于 data 文件夹和您的包名称下。
- 拉取数据库文件。
- 在浏览器中安装 SQLite 管理器插件。
- 将您的数据库文件加载到其中,您将能够在那里看到完整的数据库。
如果您的数据库位于 Android 设备上,请使用以下代码将您的数据库复制到 SD 卡中的另一个位置,然后从那里手动将其复制到您的 PC 上并在 SQLite 管理器中加载该文件.
/**
* 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();
}
}