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

1

На сайте dev говорится, что если ваши приложения подписаны с тем же сертификатом, вы можете обмениваться данными.

Я хотел бы создать утилиту, которую я могу упаковать с помощью csv файла, подписать и упаковать apk, и когда я запустил его на своем устройстве, я бы хотел, чтобы этот csv был импортирован в другую из моей базы данных приложений. Возможно ли это?

Я знаю, как получить csv в базе данных, но не как получить его в другую базу данных приложений...

  • 2
    Возможно, вы захотите взглянуть на контент-провайдеров, поскольку, насколько я знаю, это единственный способ получить доступ к базам данных в разных приложениях. Пример Блокнота поставляется с Поставщиком контента.
Теги:

2 ответа

2
Лучший ответ

Вы можете поместить свою базу данных на внешнюю SD-карту. Там нет безопасности.

Для обмена защищенными файлами приложения должны быть подписаны с тем же сертификатом и иметь соответствующий андроид: sharedUserId в файлах AndroidManifest.xml.

Ваше приложение-утилита может попробовать открыть базу данных других приложений с абсолютным именем пути. Я не уверен, что произойдет с управлением транзакциями, если оба приложения одновременно изменят db.

Лучшим дизайном является наличие одного приложения и доступ к базе данных. Внедрите обработчик намерений "ИМПОРТ" в приложении, которое владеет базой данных. Ваше приложение-утилита может отправить Intent, указав имя файла csv в extraData. Или вы можете просто поместить данные в дополнительные данные Intent (если он большой, то отправьте намерение для каждой записи).

  • 0
    как правило, я всегда использую один и тот же android:sharedUserId для всех своих приложений. убедитесь, что вы НЕ меняете android:sharedUserId ПОСЛЕ того, как вы его уже опубликовали. Если я правильно помню, он стирает ваши базы данных и SharedPreferences .
0

Стандартный способ - реализовать ContentProvider. Используйте разрешения для контроля доступа. http://developer.android.com/guide/topics/providers/content-provider-basics.html http://developer.android.com/reference/android/content/ContentProvider.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню