J'ai créé un service lié par d'autres applications via AIDL et je l'ajoute au manifeste comme suit:
<service android:name=".MyService">
<intent-filter>
<action android:name="org.example.android.myservicedemo.IService" />
</intent-filter>
</service>
où IService est l'interface AIDL.
De cette façon, Eclipse me montre l'avertissement Le service exporté ne nécessite pas d'autorisation . Si je supprime le intent-filter
, l'avertissement disparaît, mais évidemment les applications ne peuvent pas se lier au service.
Que signifie cet avertissement?
android
android-service
enzom83
la source
la source
Service
et appeler la méthode de leur choix qui est exposée via votre interface AIDL.android:permission
attribut de votre<service>
déclaration. Ou ignorez simplement l'avertissement - à quoi sert le service? Si vous êtes d'accord pour garder le service "interne", il est beaucoup plus facile de le configurer simplementandroid:exported="false"
sur votre<service>
Réponses:
J'ai eu le même problème lorsque j'ai mis à jour le SDK vers la version 20 . Je l'ai supprimé en ajoutant android: propriété exportée
android:exported="false"
comme ceci:Voir ce document
la source
Si vous souhaitez restreindre votre utilisation de l'activité à votre propre application, vous devez ajouter
exported=false
à la déclaration de manifeste de votre activité.Si vous souhaitez autoriser d'autres applications à l'utiliser (explicitement via son nom de classe ou, mieux, en utilisant un intent avec un type de données ou une action), vous avez deux choix:
tools:ignore="ExportedActivity"
à la déclaration manifeste de votre activité.-
Le même raisonnement s'applique à un service, avec
tools:ignore="ExportedService"
et aux fournisseurs de contenu avectools:ignore="ExportedContentProvider"
.la source
xmlns:tools="http://schemas.android.com/tools"
The prefix "tools" for attribute "tools:ignore" associated with an element type "activity" is not bound
et aucun choix n'est donné pour résoudre ce problème.Comme Jens l'a dit, "cela signifie que d'autres applications (arbitraires) que l'utilisateur a sur son téléphone peuvent se lier à votre service et appeler la méthode qui leur plaît et qui est exposée via votre interface AIDL."
la source