Esa burbuja de chat está ahí porque has concedido a Messenger el permiso de "dibujar sobre otras aplicaciones". En términos sencillos, llámalo superposición. El nombre calificado del permiso es android.permission.SYSTEM_ALERT_WINDOW
.
Permite que una aplicación cree Windows utilizando el tipo TYPE_SYSTEM_ALERT
, que se muestra encima de todas las demás aplicaciones. Muy pocas aplicaciones deberían utilizar este permiso Estas ventanas están destinadas a la interacción del sistema con el usuario.
(El énfasis es mío)
No creo que las burbujas de chat de Messenger, en ningún caso, estén pensadas para la interacción a nivel de sistema con su usuario, por lo que se puede suponer que los desarrolladores de esa aplicación y de cualquier otra aplicación de este tipo optaron por abusar de la función del sistema para sus propios intereses.
Además, definitivamente no eres la primera persona que piensa en explotar la función de superposición de Android.
ArsTechnica: Un nuevo ransomware para Android bloquea a las víctimas cambiando el PIN de la pantalla de bloqueo
Bautizada como Android/Lockerpin.A, la aplicación ... superpone una falsa ventana de instalación de parches sobre un aviso de activación. Cuando los objetivos hacen clic en el botón de continuar, se conceder realmente a la aplicación maliciosa derechos elevados que le permitan realizar cambios en la configuración de Android . A partir de ahí, Lockerpin establece o restablece el PIN que desbloquea la pantalla de bloqueo, lo que obliga a los usuarios a realizar un restablecimiento de fábrica para recuperar el control del dispositivo.
...
Una vez pulsado el botón de continuar, la aplicación adquirirá derechos de administrador [se convierte en administrador de dispositivos]. A partir de ahí, cambiará el PIN y seguirá superponiendo periódicamente una ventana falsa en un intento de mantener los privilegios elevados. Es el primer ransomware de pantalla de bloqueo de Android conocido que fija el PIN de bloqueo de un teléfono. Como requiere que las víctimas que no pagan restablezcan sus teléfonos de fábrica, les hace perder todos sus datos.
(El énfasis es mío)
Para que lo sepas, Android entiende el daño potencial que las superposiciones pueden causar a un dispositivo, por lo tanto, cuando una superposición se dibuja activamente en la pantalla y el usuario intenta cargar lateralmente una aplicación, el botón de instalación simplemente no funciona. Ver ¿Por qué no puedo pulsar el botón Instalar cuando instalo aplicaciones de fuentes desconocidas?
Ojalá Android extienda esta función a la activación/desactivación de los administradores de dispositivos, sería muy bonito por su parte.
En caso de que quieras saber qué otra aplicación tiene el mismo permiso, puedes usar mi respuesta en ¿Determinar qué aplicación está dibujando encima de otras aplicaciones?
Las notificaciones que mencionas, por intrusivas que sean, se llaman notificaciones Heads-up. Hasta Android 5.1, los usuarios no tenían una forma oficial de deshacerse de ellas sin perder todas las notificaciones de una aplicación.
Diseño de Android: Notificación de la cabeza
Cuando llega una notificación de alta prioridad..., se presenta a los usuarios durante un breve período de tiempo con un diseño ampliado que expone las posibles acciones.
Después de este período de tiempo, la notificación se retira a la sombra de notificación. Si la prioridad de una notificación está marcada como Alta, Máxima o Pantalla Completa, recibe una notificación en la parte superior.
(El énfasis es mío)
Como habrás adivinado, las notificaciones Heads-up no son el tipo de notificación por defecto que un sistema debería mostrar a un usuario y un desarrollador tiene que optar explícitamente por ello en el código de la aplicación. Lo que ocurre es que algunos desarrolladores opinan que las cosas que hace su aplicación son de máxima prioridad en la vida del usuario, por no hablar del sistema, por lo que a menudo optan por mostrar todas las notificaciones como notificaciones Heads-up.
Dicho esto, se introdujeron las notificaciones de cabeza sólo en Lollipop mientras que su dispositivo ejecuta Android KitKat, así que definitivamente, como Andrew T. lo puso en los comentarios, debe ser el código nativo de Facebook el que está creando y mostrando esas notificaciones pseudo-Lollipop en la parte superior y sobre una ventana.
La razón por la que no se puede interactuar con la barra del sistema cuando esa notificación pseudo-Lollipop está activa, es muy probablemente el uso de superposiciones de bloqueo para mostrar una vista que es percibida como una notificación por el usuario. Aaron's responder lo ha explicado con una buena aplicación de ejemplo que funciona.
Busqué en la web entre el rango de octubre de 2013 a octubre de 2014 (la edad de desarrollo de Android 4.4.x) y llegué a saber que había aplicaciones disponibles en Play Store destinadas principalmente a crear esas notificaciones pseudo-Lollipop. Una de estas aplicaciones es Floatificaciones y el otro que encontré fue Metro Notifications Free . Ambos utilizan la misma superposición de bloqueo para crear esas notificaciones pseudo-Lollipop.
Me sorprende que no hayas encontrado brinda bastante molesto.