как получить доступ к базе данных или файла другого приложения в Android - PullRequest
2 голосов
/ 13 августа 2010

Можно ли получить путь к файлу базы данных в Android по пути: "/data/system/accounts.db"

в моем приложении я хочу использовать эту базу данных, но не получаю ее путь. если я делаю жесткое кодирование и удаляю файл, я могу это сделать. Но я хочу получить доступ к нему как к базе данных, чтобы я мог удалить таблицу.

Любая помощь будет полезна.

код, который я пробовал:

    private SQLiteDatabase db;
    File dbFile = mContext.getDatabasePath("accounts.db");
    if (dbFile.exists())
    {
        db = SQLiteDatabase.openOrCreateDatabase(dbFile, null);
        db.execSQL("DROP TABLE IF EXISTS accounts");
        db.setVersion(db.getVersion()+1);
    }

1 Ответ

4 голосов
/ 13 августа 2010

Вы можете использовать android.os.Environment.getDataDirectory(), чтобы получить путь к каталогу данных.Не используйте mContext.getDatabasePath, если db отсутствует в каталоге данных вашего приложения.

Также см. Можно ли переместить внутреннюю БД на SDCard?

если вы хотите выполнить поиск, выполните рекурсивный поиск файлов с помощью чего-то вроде этого:

private void searchFile(String startingPoint) {

    Files[] files = File("/data").listFiles(); 
    for (File f:files) {
        if (f.isDirector) searchFile(f);
        else if (f.getName().equals("accounts.db")) {
            // delete db here...
            // and exit the search here...
        }
    } 
}

и проверьте, содержит ли он accounds.db.Если вы дойдете до другого подкаталога, рекурсивно вызовите свою собственную функцию с подпапкой в ​​качестве отправной точки и т. Д.поиск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...