I want to get the sqlite file from my SAMSUNG GALAXY TAB, but I dont know where is it? Please help me? Thanks a lo.
3 Answers
If you mean you visited /data and found nothing in it, and you are examining an ordinary piece of Android hardware, that is expected. DDMS does not have permission to browse through /data.
However, at least if your app is compiled in debug mode, you can use the adb pull command at the console to download your file directly.

- 6,181
- 6
- 62
- 106
Take a look at this:
Location of sqlite database on the device
You will find it here: /data/data/Your-Application-Package-Name/databases/your-database-name

- 1
- 1

- 134
- 1
- 8
If your device is not rooted
then you don't have access in data
folder. Then you should write the database in sd card
. On rooted device or emulator sqlite file is inside
/data/data/packagename/databases/
for not rooted device write file like this
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();
}
}
}
Where DB_NAME is the name of my database and DB_PATH is defined as follows:
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/";
}
And add the following permission in manifest:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Check this question in SO How to check database on not rooted android device