2 votes

SecurityException: Non autorisé à démarrer le service Intent sans permission

J'ai une bibliothèque appelée com.example.library, contenant un service appelé com.example.library.http.RestService. Le manifeste de la bibliothèque contient ces éléments :

J'utilise cette bibliothèque dans une application appelée com.example.testapp. Le manifeste de TestApp répète exactement les mêmes éléments que la bibliothèque ci-dessus. Cela fonctionne très bien dans l'émulateur exécutant 4.0.3 et sur un Nexus 4 exécutant 4.2.2, mais lorsque j'essaie de l'utiliser sur un HTC Wildfire S fonctionnant sous 2.3.5, il plante dès qu'il essaie de lancer le service, avec l'exception suivante :

java.lang.SecurityException: Not allowed to start service Intent 
{ act=com.example.library.LAUNCH_REST_SERVICE pkg=com.example.testapp (has extras) }
without permission com.example.library.permission.REST_PERMISSION

Je lance le service avec le code suivant :

Intent intent = new Intent();
intent.setAction( "com.example.library.LAUNCH_REST_SERVICE" );
intent.setPackage( "com.example.testapp" );

[définition de certaines données supplémentaires]

startService( intent );

J'ai cherché partout sur Internet pour obtenir de l'aide, et j'ai lu toutes les questions connexes sur Stack Overflow que je pouvais trouver, mais je ne trouve tout simplement rien qui me manque.

0voto

Niall Points 458

Donc, après avoir essayé sur un émulateur 2.2 et 2.3, j'ai essayé de réinitialiser aux paramètres d'usine le Wildfire S. Maintenant, ça fonctionne bien.

Je pense que cela ressemble à ce problème : Intent custom permission not working - si j'avais renommé le package de mon application, cela aurait probablement fonctionné aussi.

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