我正在创建一个Android应用程序,其中使用sqlite open helper创建数据库。当我在模拟器中安装我的应用程序时,它工作正常,但当我在手机中测试时,我没有看到在DDMS文件资源管理器中查看数据/数据创建的任何数据库。它是空的。这个你能帮我吗。
感谢。
答案 0 :(得分:1)
您可以在模拟器上的 DDMS 应用程序私有文件(来自数据/数据目录)中查看,但无法查看没有root的设备。但这并不意味着数据库不存在。如果你想从真实设备获取数据库,你必须在它的根目录下或在你的应用程序中写一些代码,这些代码在sdcard上复制db文件。
答案 1 :(得分:1)
root android设备
或
编写用于将db文件复制到sdcard的代码
将数据库从/ data / data目录复制到sdcard的代码
public void copyDBToSDCard() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//"+getPackageName()+"//databases//"+DB_NAME+"";
String backupDBPath = "backupname.db";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
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();
}
}
Toast.makeText(print.this,
"Database Saved", Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(print.this,
"Error="+e, Toast.LENGTH_LONG).show();
Log.i("FO","exception="+e);
}
}