Связь между android приложениями на одном устройстве - PullRequest
0 голосов
/ 05 января 2020

Я создаю приложение, которое задает c вычисления на основе данных, которые он извлекает из inte rnet, давайте назовем эти вычисления "окончательными данными". Окончательные данные должны быть доступны (чтение и запись) для других приложений на том же устройстве (сторонние приложения). Таким образом, планируется создать библиотеку / модуль Android и распространять ее. Как только сторонний разработчик приложения добавляет эту библиотеку в свое приложение, его приложение должно иметь возможность читать / записывать «окончательные данные», которые хранятся в моем приложении (если мое приложение установлено), и выполнять некоторые методы в моем приложении (recalculateStuff() ).

Я наткнулся на стену, решая, как лучше всего реализовать указанную библиотеку, и вот варианты, которые я пробовал / изучал:

  1. AIDL
  2. Связанные службы
  3. Содержание
  4. Пользовательский локальный tcp-сервер / клиент или http-сервер / клиент

Одна важная вещь заключается в том, что я хочу иметь возможность знать, какое стороннее приложение пытается изменить значение (так как пользователь сможет разрешить / заблокировать определенные c приложения от чтения / записи окончательных данных), и для этого решения № 3 и 4 не подойдут (пожалуйста, исправьте меня, потому что я часто ошибаюсь), и я не смог найти способ проверить «имя пакета запрашивающего» в 1 и 2.

Также кто-то упомянул, что AIDL не будет работать между приложениями, которые подписан разными ключами, t true (не смог найти ничего в Android документации разработчика, и еще не тестировал)?

Мои вопросы: есть ли какой-нибудь другой лучший способ сделать это (общение и идентификация)? если да, то какой? если нет, какое из 4 рассматриваемых решений подходит лучше всего? Спасибо

...