El permiso de manifiesto no funciona en Android 6

Ignora por completo:

 

Entonces obtuve una excepción:

Causado por: android.view.WindowManager $ BadTokenException: no se puede agregar la ventana android.view.ViewRootImpl$W@86fb55b – permiso denegado para este tipo de ventana

Ni siquiera está en la lista:

enter image description here

¿Cómo debería arreglarlo? Gracias.

EDITAR:

Se enumera en Configurar aplicaciones / Avanzado / Dibujar sobre otra aplicación. Entonces lo enciendo y ahora funciona bien, pero ¿por qué no hay ningún diálogo para preguntar sobre el permiso cuando ejecuto mi aplicación? Todas las autorizaciones fueron desactivadas por deafult y tengo que ir a la configuración y, por supuesto, activarlo.

Gracias a la publicación de blog de CommonsWare , tengo alguna pista.

Asumiendo que su código está en Activity o Fragment , verifique el permiso de superposición y solicite si es necesario:

 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); } } 

Luego, vuelva a verificar el permiso para una mejor 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... } } }