Обратные вызовы удаленного сервиса Android

(У меня естьудаленный сервис с интерфейсом AIDL, который используется несколькими клиентскими приложениями. Я хотел бы добавить асинхронный метод в интерфейс для вызовов, которые занимают некоторое время, но мне нужно, чтобы решение былобезопасныйЭто означает, что только мои приложения могут общаться с сервисом. Клиентские приложения подписаны той же подписью, что и приложение-служба. В настоящее время приложения просто привязываются к сервису и вызывают один метод интерфейса для выполнения различных операций.

Одним из вариантов является передача намерения от службы по завершении операции и использование BroadcastReceiver в клиентском приложении, но (Вопрос 1) это можно сделать так, чтобы только мои приложения могли получать намерения? setPackage (), кажется, делает это, но мне нужно поддерживать устройства Gingerbread, что, по-видимому, исключает этот подход в соответствии с ответом здесь:setPackage для намерения в прянике

Поэтому, похоже, мне нужно добавить второй интерфейс .aidl с интерфейсом обратного вызова для службы, которую использует клиент. Я видел примеры, которые используют слушатели здесь, но я не уверен, в чем разница с клиентом, просто передающим второй интерфейсный объект в качестве аргумента (как используется в IScri, пример pt / IScriptResult из этого ответа:Служба обратного вызова к активности в Android)

Вопрос 2Какая польза от использования прослушивателя здесь по сравнению с методом обратного вызова?

Ответы на вопрос(1)

Ваш ответ на вопрос