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.