Accessing the database of one application from another application

android, android-database, android-sqlite

Solution

You can use the same database only if you created the running application database in custom content provider.

You cannot directly access the database from running application.

But if you create your running application database in Custom Content Provider then with the help of authorities you can directly access the database.

In this case you don't even need to copy that database.

Refer this link for custom content provider.

Problem

I've built an application and now I want to copy the database of that running application using my new backup application. I create my database path by doing `DB_PATH + DB_NAME`, using the following values: ``` DB_PATH = "/data/data/iCam.Cam/"; DB_NAME = "testdb.db"; ``` I have code which copies the database from the given path to the SD Card. However, when I initially check the database using the following method, it returns `false`: ``` public boolean checkDataBase() { SQLiteDatabase checkDB = null; try { String myPath = DB_PATH + DB_NAME; checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); } catch (SQLiteException e) { e.fillInStackTrace(); // database does't exist yet. } if (checkDB != null) { checkDB.close(); } return checkDB != null ? true : false; } ``` Any suggestions on how to achieve this?

Original source