2016-06-20 11 views
2

У меня есть требование, чтобы для моего двух подписанных приложений с одинаковыми сертификатами были установлены в устройстве Android. Если есть какое-либо приложение для изменения приложения A, приложение B должно быть уведомлено о том же и наоборот. Можно ли все это сделать?Android - используйте общую переменную в двух приложениях

Благодаря

+0

вы смотрели на это? https://developer.android.com/training/sharing/send.html – Jaxian

+0

Привет, Jaxian, Совместное использование данных между обоими приложениями не будет направлено. Он должен работать совместно с общими данными. – Pankaj

ответ

0

Вы можете изучить немного и использовать Android Content Provider и Android Content Resolver

+0

Да, я согласен использовать Android Content Provider, даже у меня было лучшее решение, в котором я могу использовать общие предпочтения и сохранять в приложении A и читать в приложении B, используя код Контекст con = createPackageContext ("com.xyz.data ", 0); Но всегда будет проблема безопасности для данных приложения. В контент-провайдере мы не можем ограничивать другое приложение чтением данных, если оно экспортировано = true. Это не? – Pankaj

+0

Вы правы, ваше приложение может иметь собственное разрешение и свою внутреннюю логику для обмена данными между провайдерами. Если exported = true, другое приложение с установленным разрешением может потенциально прочитать данные вашего приложения. – lubilis

0

Каждый пакет приложение запускается как процесс Linux несколько пакетов приложений может выполняться как часть одного процесса использования андроида: sharedUserId в манифесте из 2 приложений для запуска их как часть одного и того же более крупного приложения

Оба приложения должны быть подписаны с тем же сертификатом App2 хочет обновить d данные App1 поэтому необходима информация инсталляционный App1

Получить диспетчер пакетов с помощью getPackageManager() класса Context Менеджер пакетов содержит различные виды информации, связанной с пакетами прикладных программ, установленных в данный момент на устройстве вызова ApplicationInfo

getApplicationInfo(String packageName,int flags) 

менеджера пакетов, чтобы получить всю информацию о приложении 1

+0

Данные, которые я хочу предоставить для динамического сохранения в переменных или общих предпочтениях/db. Вы имеете в виду, что определение android: sharedUserId обеспечит безопасность доступа, если никакое другое приложение не может использовать настройки и т. Д. Даже если мы знаем имя пакета приложения? Используя нижеприведенный код, я могу получить контекст, а затем можно получить выборку db или предпочтение. Контекст con = createPackageContext ("com.xyz.data", 0) – Pankaj

+0

У другого приложения не будет одинакового идентификатора sharedUser, поэтому он не может получить доступ к данным Предполагая, что ур хранит данные в файле с помощью FileOutputStream Теперь как приложение A, так и Приложение B имеет один и тот же sharedUserId, чтобы они могли получить доступ к данным другие приложения не могут –