Дублировать базу данных Android из другого приложения? - PullRequest
4 голосов
/ 12 февраля 2010

У меня есть две версии одного и того же приложения.

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

Есть ли способ получить доступ к самому файлу базы данных, если он принадлежит другому приложению?
Файл даже принадлежит приложению или он обычно доступен через файловую систему?

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

Ответы [ 2 ]

5 голосов
/ 12 февраля 2010

Есть ли способ получить доступ к сам файл базы данных, если он принадлежит другое приложение?

Только если оба приложения имеют общий идентификатор пользователя и подписаны одним и тем же ключом подписи.

Файл принадлежит даже приложение или это вообще доступны через файловую систему?

Он будет доступен через файловую систему (/data/data/your.package.goes.here/databases/whatever-you-called-the.db), но опять же, только если оба приложения имеют общий идентификатор пользователя и подписаны одним и тем же ключом подписи.

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

Вы должны жестко закодировать его или хотя бы переменные компоненты (имя пакета и имя базы данных), которые вы уже знаете во время компиляции.

1 голос
/ 12 февраля 2010

Где находится файл базы данных? Если он находится на SD-карте, вы можете получить к нему доступ напрямую. Если вы создали БД в своем личном каталоге приложений, вы не сможете к ней прикоснуться. Возможно, вы могли бы определить поставщика контента в бесплатной версии вашего приложения, которую профессиональная версия могла бы использовать для извлечения всей информации, хранящейся в базе данных.

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