studio permission permisos name internet intent example editar androidmanifest android android-6.0-marshmallow

permission - permisos internet android manifest



El permiso del manifiesto no funciona en Android 6 (1)

Ignora por completo:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

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:

¿Cómo debo arreglarlo? Gracias.

EDITAR:

Aparece en Configurar aplicaciones / Avanzado / Dibujar sobre otra aplicación. Así que lo enciendo y ahora funciona bien, pero ¿por qué no hay ningún diálogo para pedir permiso cuando ejecuto mi aplicación? Todos los permisos se desactivaron por defecto y necesito ir a la configuración y activarlo manualmente.


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

Suponiendo que su código está en Activity o Fragment , verifique el permiso de superposición y solicítelo 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 experiencia de usuario:

@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... } } }