Pourquoi utiliser une intention implicite pour démarrer un service, pas sûr?
Lorsque je démarre un service à l'intention implicite je reçois un avertissement:
Implicite intentions avec startservice ne sont pas sûrs: ...
Pourquoi?
Edit:
Je suis en utilisant mes propres internes de la catégorie qu'aucune autre application doit utiliser et de mon service n'est pas exporté android:exported="false"
.
pour le protéger de la collision... d'Autres applications peuvent avoir
voir modifier.
mais pas si je utiliser une application spécifique de la catégorie.
mais si, à la catégorie de collision? (Très très rare). Système Android va pas demander à l'utilisateur de choisir quel Service pour commencer...
Qui sonne comme un Android bug ou d'une surveillance.
Service
s accepter même l'intention de l'action...voir modifier.
mais pas si je utiliser une application spécifique de la catégorie.
mais si, à la catégorie de collision? (Très très rare). Système Android va pas demander à l'utilisateur de choisir quel Service pour commencer...
Qui sonne comme un Android bug ou d'une surveillance.
OriginalL'auteur dcow | 2014-02-19
Vous devez vous connecter pour publier un commentaire.
En Utilisant
Implicit Intents
vous n'avez pas spécifié un composant, Cela signifie que le composant sera choisi parAndroid
parIntent-Action
.À l'aide de
android:exported="false"
fera en sorte que, d'autres ne pouvez pas démarrer votre service. Mais si j'ai écrit une application avecBroadcastReeciver
qui est à l'écoute de votreIntent-Action
et faire quelques travaux malveillants?Et même lorsque j'ai déclaré un Service dans mon application et de l'utilisation de la même catégorie/filtre/action.
Donc utiliser
Explicit Intents
.Je ne m'inquiète pas si vous avez ajouté un "malveillant" application qui ramasse mon service intentions, qu'allez-vous faire... journal de mon service est démarré? Vous pouvez simplement demander à la système de. Il n'existe pas de données sensibles dans mon intention.
Alors ne vous inquiétez pas à ce sujet. Ce n'est qu'un avertissement, vous pouvez l'ignorer 🙂
J'utilise android licence de code de vérification (LVL), pour que la liaison de service à l'aide de ce "new Intent("com.android.des distributeurs de.l'octroi de licences.ILicensingService")". Obtention message d'avertissement et le service ne démarre pas. Passe seulement pour la version 4.0 et des périphériques.
Cela n'a aucun sens. C'est l'ensemble de point intentions du monde, vous permettant de spécifier ce que vous voulez plutôt que ce que vous voulez le faire, de sorte que l'utilisateur peut choisir l'application à utiliser pour une tâche. Forcer des applications à inclure le nom du composant défaites le point de l'ensemble. Et ce n'est pas "seulement un avertissement", 5.0 pauses entièrement.
OriginalL'auteur Pankaj Kumar
Si vous disposez de plusieurs Service(s) avec le même IntentFilter, le Système ne sait pas où l'on doit être commencé, et le système ne va pas demander aux utilisateurs de choisir.
OriginalL'auteur handrenliang