Télécommande Android rappels de service

(J'ai un distance service avec un AIDL interface qui est utilisée par plusieurs applications client. Je voudrais ajouter une méthode asynchrone de l'interface pour les appels qui prennent un certain temps, mais j'ai besoin de la solution à sécurisé, ce qui signifie que seuls mes applications peuvent communiquer avec le service. Les applications clientes sont signés avec la même signature que l'application de service. Actuellement, les apps se lier à la fonction et l'appel d'une interface unique méthode pour effectuer diverses opérations.

Une option est de radiodiffusion à l'Intention du service lorsque l'opération est terminée, et à l'aide d'un BroadcastReceiver dans l'application cliente, mais (Question #1) cela peut-il être fait d'une manière qui garantit que seules mes applications peuvent recevoir le but? setPackage() semble le faire, mais j'ai besoin de soutien en pain d'épice périphériques, ce qui semble exclure que l'approche en fonction de la réponse ici: setPackage de l'intention dans le pain d'épices

Il semble donc que j'ai besoin d'en ajouter une seconde .aidl interface avec l'interface de rappel pour le service à utiliser, mis en œuvre par le client. J'ai vu des exemples qui utilisent des auditeurs ici, mais je ne suis pas sûr quelle est la différence, et le client de passage dans la deuxième interface de l'objet comme un argument (comme utilisé dans les IScript /IScriptResult exemple de cette réponse: Service de rappel à l'activité dans android)

Question #2, quel est l'avantage de l'utilisation d'un écouteur d'ici vs une méthode de rappel?

Les auditeurs méthodes de rappel.

OriginalL'auteur Android QS | 2013-01-29