我想从我的SAMSUNG GALAXY TAB获取sqlite文件,但我不知道它在哪里?请帮我? 谢谢你。
答案 0 :(得分:0)
如果你的意思是你访问/数据并且没有发现任何内容,并且你正在检查一个普通的Android硬件,这是预期的。 DDMS无权浏览/ data。
但是,至少如果您的应用程序是在调试模式下编译的,您可以使用控制台上的adb pull命令直接下载文件。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您的设备为not rooted
,则您无法访问data
文件夹。然后你应该在sd card
中编写数据库。在rooted设备或模拟器上,sqlite文件在
/data/data/packagename/databases/
表示没有root设备的写文件
private void writeToSD() throws IOException {
File sd = Environment.getExternalStorageDirectory();
if (sd.canWrite()) {
String currentDBPath = DB_NAME;
String backupDBPath = "backupname.db";
File currentDB = new File(DB_PATH, 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();
}
}
}
其中DB_NAME是我的数据库的名称,DB_PATH的定义如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
DB_PATH = context.getFilesDir().getAbsolutePath().replace("files", "databases") + File.separator;
}
else {
DB_PATH = context.getFilesDir().getPath() + context.getPackageName() + "/databases/";
}
在清单中添加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
中查看此问题