Доступ к базе данных одного приложения из другого приложения

Я создал приложение и теперь хочу скопировать базу данных этого работающего приложения, используя мое новое приложение резервного копирования. Я создаю свой путь к базе данных, делаяDB_PATH + DB_NAME, используя следующие значения:

DB_PATH = "/data/data/iCam.Cam/";
DB_NAME = "testdb.db";

У меня есть код, который копирует базу данных с указанного пути на 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;
}

Есть предложения о том, как этого добиться?

 drulabs23 мая 2012 г., 13:31
@ Rasel ответ правильный. Вы должны использовать contentProvider из вашего реального приложения, чтобы разделить контроль над базой данных. почему ты все равно хочешь его скопировать ??
 Trikaldarshi23 мая 2012 г., 13:37
Я хочу скопировать его, потому что мое приложение отправляет базу данных на сервер, но в настоящее время оно не отправляет некоторые данные, которые должны быть загружены в Интернет, поэтому мне нужно эту базу данных скопировать на SD-карту, чтобы я мог быть отправлен по поч

Ответы на вопрос(4)

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

Решение Вопроса

если вы создали базу данных запущенных приложений в пользовательском поставщике контента.

Вы не можете напрямую получить доступ к базе данных из запущенного приложения.

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

В этом случае вам даже не нужно копировать эту базу данных.

Ссылка на этоссылк для поставщика нестандартного контента.

No

если приложение не предоставит вам интерфейс через ContentProvider.

вы можете просматривать свою базу данных SQLite, поэтому прочитайте руководство по DDMS по этой ссылкеhttp: //www.brighthub.com/mobile/google-android/articles/25023.asp http://www.edumobile.org/android/category/android-beginner-tutorials

 Trikaldarshi23 мая 2012 г., 13:29
Я хочу передать эту настройку моему удаленному клиенту

Ваш ответ на вопрос