La permission du manifeste ne fonctionne pas dans Android 6

Il ignore complètement:

 

Donc j’ai eu exception:

Causée par: android.view.WindowManager $ BadTokenException: impossible d’append une fenêtre android.view.ViewRootImpl$W@86fb55b – permission refusée pour ce type de fenêtre

Il n’est même pas listé:

entrer la description de l'image ici

Comment dois-je le réparer? Merci.

MODIFIER:

Il est répertorié dans Configurer les applications / Avancé / Dessiner sur une autre application. Donc je l’allume et maintenant ça marche bien, mais pourquoi il n’y a pas de dialog pour demander la permission quand je lance mon application? Toutes les missions ont été désactivées par sourd et je dois aller aux réglages et les activer manuellement?

Grâce au blog de CommonsWare , j’ai eu un indice.

En supposant que votre code se trouve dans Activity ou Fragment , vérifiez l’autorisation de superposition et faites-en la demande si nécessaire:

 public static int OVERLAY_PERMISSION_REQ_CODE = 1234; public void someMethod() { if (!Settings.canDrawOverlays(this)) { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())); startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE); } } 

Ensuite, vérifiez à nouveau l’autorisation pour mieux UX:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == OVERLAY_PERMISSION_REQ_CODE) { if (!Settings.canDrawOverlays(this)) { // SYSTEM_ALERT_WINDOW permission not granted... } } }