Question

Tout en développant une application de lancement (écran d'accueil) pour Android, je suis venu dans une exception de sécurité Je ne comprends pas.

  • Lorsque vous appelez la Procédé [bindAppWidgetId ()] [1] à partir de dans mon activité de lancement, je reçois cette exception de sécurité:

8 au 19 novembre: 30: 11,689: ERREUR / AndroidRuntime (6032): java.lang.SecurityException: bindGagetId appWidgetId = 99 provider = {ComposantInfo com.android.music / com.android.music.MediaAppWidgetProvider}: L'utilisateur 10034 n'a pas android.permission.BIND_APPWIDGET.

J'ai d'abord pensé que je l'avais oublié la permission de BIND_APPWIDGET dans mon manifeste, mais il est certainement là.

La documentation android api indique ceci:

  

"Vous avez besoin du APPWIDGET_LIST   autorisation. Cette méthode doit être utilisée   par le sélecteur de AppWidget. "

J'ai essayé d'ajouter l'autorisation android.permission.APPWIDGET_LIST, mais il ne résout pas le problème.

De plus, je l'ai regardé le manifeste de l'application des paramètres à partir des sources Android qui contient le code AppWidgetPickActivity: il y a une ligne spéciale qui demande à part ID utilisateur:

  

"android: sharedUserId =" android.uid.system "

Pourrait-il être lié à mon problème?

Si quelqu'un a une idée qui serait génial!

Cordialement, Laurent

Était-ce utile?

La solution

Je l'ai trouvé une réponse!

BindAppWidgetId () est volontairement pas disponible pour les applications! (problèmes de sécurité).

  

"Le android.permission.BIND_APPWIDGET   autorisation est une autorisation de système. Vous   ne peut obtenir cette autorisation si votre   paquetage est installé en tant que système   package (installé dans / system / app en   lieu de / données / app) ou vous connecter application   avec un certificat qui est le même que   votre image android. Alors basiquement ce   signifie que vous ne pouvez utiliser cette autorisation   si vous êtes aussi le créateur du   l'image android sur votre plate-forme / téléphone. "

Voici les liens vers ces informations:

http: // groups.google.com/group/android-developers/browse_thread/thread/231245ba6d1e690f/047b9d3f776d7e54?lnk=gst&q=bindAppWidgetId#047b9d3f776d7e54

http: // groups.google.com/group/android-developers/browse_thread/thread/f24e0f484a79d529/ef84188e8533a125?lnk=gst&q=bindAppWidgetId#ef84188e8533a125

Autres conseils

Un rapide recherche Google révèle que android.permission.APPWIDGET_LIST est une autorisation utilisable, même si elle est ne figure pas dans l'API docs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top