从另一个应用程序访问一个应用程序的数据库

Tri*_*shi 5 android android-sqlite android-database

我已经构建了一个应用程序,现在我想使用我的新备份应用程序复制正在运行的应用程序的数据库.我通过DB_PATH + DB_NAME使用以下值创建数据库路径:

DB_PATH = "/data/data/iCam.Cam/";
DB_NAME = "testdb.db";
Run Code Online (Sandbox Code Playgroud)

我有代码将数据库从给定路径复制到SD卡.但是,当我最初使用以下方法检查数据库时,它返回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;
}
Run Code Online (Sandbox Code Playgroud)

有关如何实现这一目标的任何建议?

Kri*_*Kri 10

只有在自定义内容提供程序中创建正在运行的应用程序数据库时,才能使用同一数据库

您无法从运行的应用程序直接访问数据库.

但是,如果您在自定义内容提供程序中创建正在运行的应用程序数据库,则可以在权限的帮助下直接访问数据库.

在这种情况下,您甚至不需要复制该数据库.

有关自定义内容提供商,请参阅此