L'autorisation de manifester ne fonctionne pas sur Android 6
Elle ignore complètement:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Je me suis donc exception:
Causés par: android.vue.WindowManager$BadTokenException: Impossible d'ajouter de la fenêtre de android.vue.ViewRootImpl$W@86fb55b -- le refus d'une autorisation pour ce type de fenêtre
Il n'est même pas répertorié:
Comment dois-je résoudre ce problème? Merci.
EDIT:
Dans Configurer des applications/Avancé /Dessiner sur les autres app. Donc, je l'allume et maintenant il fonctionne très bien, mais pourquoi il n'y a pas de dialogue à poser au sujet de la permission, quand je lance mon application? Tous les perrmissions a été désactivée par défaut et j'ai besoin d'aller dans les paramètres et mannualy l'allumer?
- J'ai eu ce problème aussi. J'ai aussi essayé d'obtenir l'autorisation pour SYSTEM_ALERT_WINDOW en appelant
Activity#requestPermissions()
, mais cela ne fonctionne pas. - J'ai soulevé un rapport de bug ici: code.google.com/p/android-developer-preview/issues/...
- Par ailleurs, l'autorisation est inscrite dans Paramètres -> Applications -> icône d'Engrenage dans la barre du haut -> Tirer sur d'autres applications (en vertu de la section Avancé). Très bien cachés!
- Double Possible de Impossible d'ajouter de la fenêtre de android.vue.ViewRoot$W@44da9bc0 -- le refus d'une autorisation pour ce type de fenêtre
Vous devez vous connecter pour publier un commentaire.
Grâce à CommonsWare du blog, j'ai obtenu un indice.
En supposant que votre code est en
Activity
ouFragment
, vérifier la superposition d'autorisation et de faire une demande pour cela, si nécessaire:Ensuite, re-vérifier l'autorisation pour une meilleure UX:
Context#startActivity
ou un fragment qui peuvent être gérés à l'intérieur d'unService
. Puis, à l'intérieur de cette activité ou de fragment, de vérifier l'autorisation. Si vous souhaitez recevoir l'octroi d'autorisation résultat de l'activité ou du fragment, vous peut avoir besoin de mesures supplémentaires pour mettre en œuvre un événement de rappel de la mécanique (comme liant reposant sur l'utilisation de la messagerie ou de la LocalBroadcastManager)<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
à l'intérieur de votre fichier manifeste. Assurez-vous également qu'il n'est PAS entre vos <application> </application> les crochets! Qui a résolu le problème pour moi. Je l'ai eu entre mes application des crochets, et de le mettre juste avant la dernière ligne avec </manifest>.