web-dev-qa-db-fra.com

Android: exports: "true" est-il vraiment nécessaire pour un service d'authentification?

Il existe généralement deux services impliqués dans la mise en œuvre d'un authentifiant Android: le service d'authentification pour renvoyer un authentifiant et le service Sync qui fournit un adaptateur de synchronisation. Cette question concerne spécifiquement le service d'authentification, bien que dans la plupart des exemplesles deux services reçoivent l'attribut Android:exported="true" dans le AndroidManifest.xml, par exemple:

<service
    Android:name=".authenticator.AuthenticationService"
    Android:exported="true">
    <intent-filter>
        <action
            Android:name="Android.accounts.AccountAuthenticator" />
    </intent-filter>
    <meta-data
        Android:name="Android.accounts.AccountAuthenticator"
        Android:resource="@xml/authenticator" />
</service>

La suppression de l'attribut du service d'authentification ne semble pas avoir d'effet (Froyo testé, Gingerbread) - le code d'autorisation continue de fonctionner correctement - le drapeau est-il réellement nécessaire?

22
Roberto Tyley

Bien que cela ne soit pas réellement nécessaire, cela semble créer une certaine confusion. C'est pourquoi Google recommande à

Définissez toujours explicitement l'attribut Android:exported, que vous exportiez ou non l'un des composants de votre application.

dans leurs recommandations de qualité de base de l'application .

1
serv-inc