На сайте dev говорится, что если ваши приложения подписаны с тем же сертификатом, вы можете обмениваться данными.
Я хотел бы создать утилиту, которую я могу упаковать с помощью csv файла, подписать и упаковать apk, и когда я запустил его на своем устройстве, я бы хотел, чтобы этот csv был импортирован в другую из моей базы данных приложений. Возможно ли это?
Я знаю, как получить csv в базе данных, но не как получить его в другую базу данных приложений...
Вы можете поместить свою базу данных на внешнюю SD-карту. Там нет безопасности.
Для обмена защищенными файлами приложения должны быть подписаны с тем же сертификатом и иметь соответствующий андроид: sharedUserId в файлах AndroidManifest.xml.
Ваше приложение-утилита может попробовать открыть базу данных других приложений с абсолютным именем пути. Я не уверен, что произойдет с управлением транзакциями, если оба приложения одновременно изменят db.
Лучшим дизайном является наличие одного приложения и доступ к базе данных. Внедрите обработчик намерений "ИМПОРТ" в приложении, которое владеет базой данных. Ваше приложение-утилита может отправить Intent, указав имя файла csv в extraData. Или вы можете просто поместить данные в дополнительные данные Intent (если он большой, то отправьте намерение для каждой записи).
android:sharedUserId
для всех своих приложений. убедитесь, что вы НЕ меняете android:sharedUserId
ПОСЛЕ того, как вы его уже опубликовали. Если я правильно помню, он стирает ваши базы данных и SharedPreferences
.
Стандартный способ - реализовать ContentProvider. Используйте разрешения для контроля доступа. http://developer.android.com/guide/topics/providers/content-provider-basics.html http://developer.android.com/reference/android/content/ContentProvider.html