exception de sécurité tout en appelant bindAppWidgetId
-
29-09-2019 - |
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
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:
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.