6
votes

Pourquoi l'intention de service doit être une intention explicite

Lorsque nous démarrons un service comme suit: xxx

Il donne une erreur: l'intention de service doit être explicite.

Pourquoi est-ce le cas. Pourquoi Android nécessite une intention de service d'être explicite?


3 Réponses :



2
votes

Lorsque vous démarrez un service avec une intention implicite contrairement à l'activité, aucune interface utilisateur est impliqué. Lorsque plusieurs services peuvent gérer une intention, Android sélectionne un à aléatoire; L'utilisateur n'est pas invité à Sélectionnez un service.

Si le service malveillant est lié à la demande d'appel, l'attaquant peut renvoyer des données malveillantes arbitraires. ou simplement renvoyer un résultat réussi sans prendre l'action demandée. le Le service malveillant peut voler des données et mentir sur la finalisation actions demandées.


0 commentaires

1
votes

Un peu plus à ceci: Si nous voulons utiliser l'intention implicite (avec nom d'action), nous devons utiliser Setpackagename comme ceci:

Intent intent = new Intent();
intent.setPackage("com.action.ServicePackageName");
intent.setAction("com.action.ActionNameOfService");
bindService(intent, yourServiceConectionObject, Service.BIND_AUTO_CREATE);
//or
//startService(intent);


0 commentaires