138 votes

Service exporté ne nécessite pas d’autorisation : ce que cela signifie ?

J’ai créé un service qui est lié par d’autres applications par le biais de AIDL, et je l’ajouter au manifeste comme suit :

IService correspondant à l’interface AIDL.

De cette façon, Eclipse me montrer l’avertissement exportés service ne nécessite pas d’autorisation. Si je retire la `` , la disparition d’avertissement, mais évidemment les applications sont incapable de se lier au service.

Que signifie cet avertissement ?

125voto

ZuzooVn Points 2455

J’ai eu la même question quand j’ai mis à jour le SDK version 20. Je l’ai enlevé ajoutant android : exporté propriété `` comme suit :

Voir ce doc

53voto

Snicolas Points 19644

Si vous souhaitez restreindre l'activité " utilisation à votre propre application, vous devez alors ajouter exported=false de votre activité manifeste de l'instruction.

Si vous voulez permettre à d'autres applications pour l'utiliser (explicitement à un nom de classe ou, mieux, à l'aide d'une intention, avec un type de données ou de l'action), alors vous avez deux choix :

  • restreindre ces applications en utilisant une autorisation
  • permettre à toutes les applications à utiliser, vous pouvez ajouter tools:ignore="ExportedActivity" de votre activité manifeste de l'instruction.

--

Même reasonning s'applique à un service, avec tools:ignore="ExportedService" et les fournisseurs de contenu avec tools:ignore="ExportedContentProvider".

3voto

JD. Points 1448

Comme l’a dit Jens , « cela signifie que les autres applications (arbitraires), que l’utilisateur dispose sur son téléphone peuvent lier à votre Service et appeler n’importe quelle méthode ils s’il vous plaît c’est exposée via votre interface AIDL. »

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X