Вы, безусловно, можете совместно использовать одну базу данных между двумя приложениями.
Чтобы обмениваться данными между приложениями (при условии, что они выпущены одним и тем же издателем), вам необходимо указать общий идентификатор пользователя в AndroidManifest.XML обоих приложений.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:sharedUserId="my.app" ... >
(недокументировано, но разделяемый идентификатор пользователя должен быть строкой хотя бы с одним разделителем точек)
Остальное легко, и вам не нужно возитьсяс путем к базе данных.Просто используйте один и тот же DBAdapter в обоих приложениях.В приложении, в котором размещена база данных, вызовите DBAdapter с собственным контекстом.
DBadapter hostDBAdapter = new DbAdapter(getApplicationContext());
performerDBadapter.open();
Во втором приложении перейдите к базе данных с контекстом приложения для размещения базы данных.
Сначала определите общий контекст:
Context sharedContext = null;
try {
sharedContext = this.createPackageContext("replace.with.host.package.name", Context.CONTEXT_INCLUDE_CODE);
if (sharedContext == null) {
return;
}
} catch (Exception e) {
String error = e.getMessage();
return;
}
Затем откройте DBAdapter с помощьюобщий контекст:
DbAdapter sharedDBadapter = new PerformerDbAdapter(sharedContext);
sharedDBadapter.open();
В заключение: если ваша база данных существует до установки общего идентификатора пользователя в манифесте, вам потребуется удалить / переустановить приложения на физическом устройстве, иначезаблокировать себя из базы данных (ошибка sqlite 14).Эмулятор, с другой стороны, может оказаться более щадящим.В итоге, если ваши приложения публикуются на рынке Android, установка общего идентификатора пользователя в запоздалой мысли не будет работать.
Надеюсь, это поможет.