es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Java, Android, permisos y permisos en Android, entiendo el problema al que te enfrentas al intentar crear una ventana flotante para Android. Es cierto que la mayoría de las formas de lograr esto requieren permisos para dibujar sobre otras aplicaciones, incluyendo Android 10, Core M01.

    El mensaje de error que estás viendo en la captura de pantalla indica que tu aplicación no tiene el permiso SYSTEM_ALERT_WINDOW necesario para dibujar sobre otras aplicaciones. Para lograrlo, debes solicitar el permiso al usuario en tiempo de ejecución utilizando el método Settings.canDrawOverlays().

    Estos son los pasos que puedes seguir para solicitar el permiso SYSTEM_ALERT_WINDOW:

    1. Agrega el siguiente permiso a tu archivo AndroidManifest.xml:
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"></uses-permission>
    
    1. En tu actividad o servicio, verifica si tu aplicación tiene el permiso llamando Settings.canDrawOverlays():
    if (!Settings.canDrawOverlays(this)) {
        // Solicita el permiso
        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, 
            Uri.parse("package:" + getPackageName()));
        startActivityForResult(intent, REQUEST_CODE);
    } else {
        // Permiso ya concedido
        // TODO: muestra la ventana flotante aquí
    }
    
    1. Si la aplicación no tiene el permiso, crea un intent para abrir la pantalla de configuración del sistema de tu aplicación y solicita el permiso al usuario:
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE) {
            if (Settings.canDrawOverlays(this)) {
                // Permiso concedido
                // TODO: muestra la ventana flotante aquí
            } else {
                // Permiso no concedido
                // TODO: muestra mensaje de error o sale de la aplicación
            }
        }
    }
    

    Espero que estos pasos te ayuden a crear con éxito la ventana flotante deseada para tu aplicación de Android. Avísame si tienes alguna otra pregunta o inquietud.

Comments are closed.