Я пытаюсь реализовать эту замечательную технику об общих предпочтениях в двух разных приложениях, пока MODE_PRIVATE.
Моя проблема в том, что первое приложение не может предположить, что первое приложение установлено (и наоборот) и так:
Context c = createPackageContext("com.app.first", MODE_PRIVATE);
Необходимо заменить на:
Context c = createPackageContext("com.app.shared", MODE_PRIVATE);
Но для этого требуется добавить, что com.app.shared
для реального, что переводится во второй APK?
Другими словами, существует только один AndroidManifest.xml
для APK и только один <manifest package= >
для файла манифеста. Поэтому только один фактический пакет на APK?
Я не хочу использовать 2 APK для каждого приложения, мне нужен только один APK для каждого приложения.
Есть ли способ достичь этого?
Я пытаюсь реализовать эту замечательную технику распределения предпочтений в двух разных приложениях, пока MODE_PRIVATE.
Собственно, это такая анти-великая техника, что я просто удалил свой ответ. Использование android:sharedUserId
является рискованным и совершенно невозможным для уже развернутых приложений. Я узнал об ошибках моих путей за два года с тех пор, как я отправил там свой ответ.
Кроме того, этот метод не работает надежно, потому что у вас нет контроля над тем, какие приложения пользователь устанавливает... и удаляет. Если приложения A и App B разделяют предпочтения посредством использования копии приложения A, тогда, когда пользователь удаляет приложение А, приложение B закрывается.
Следовательно, только один фактический пакет на APK?
Правильно.
Я не хочу использовать 2 APK для каждого приложения, мне нужен только один APK для каждого приложения.
Для двух приложений у вас есть два файла APK, каждый из которых имеет собственное имя пакета.
ContentProvider
- одна из возможностей. Лично в этом случае я бы отправлял трансляции с разрешением при изменении настроек приложения, чтобы их можно было подхватить другим приложением и применить к собственной копии. Таким образом, с обоими приложениями, отражающими настройки, вам не нужно беспокоиться о том, что одно приложение будет удалено и что настройки обоих приложений будут с ним. Кроме того, вам все равно, какое приложение будет установлено первым. И, как побочный эффект, он беспрепятственно распространяется на три или более приложений в случае необходимости.