picture - Android detecta o bloquea aplicaciones flotantes/superpuestas
imagen en imagen android 8 (1)
Hay un método View#onFilterTouchEventForSecurity()
que puede anular para detectar si el evento de movimiento tiene el FLAG_WINDOW_IS_OBSCURED
. Esto le permitirá saber si algo se dibuja en la parte superior de su vista.
@Override
public boolean onFilterTouchEventForSecurity(MotionEvent event) {
if ((event.getFlags() & MotionEvent.FLAG_WINDOW_IS_OBSCURED) == MotionEvent.FLAG_WINDOW_IS_OBSCURED){
// show error message
return false;
}
return super.onFilterTouchEventForSecurity(event);
}
Si solo desea proteger su aplicación de las tomas de tomas debido a que otra aplicación está sobre su aplicación, puede agregar setFilterTouchesWhenObscured
a sus vistas a través de XML o mediante programación.
Android permite que las aplicaciones se dibujen sobre otras aplicaciones con android.permission.SYSTEM_ALERT_WINDOW y se denomina aplicación flotante / de superposición. Por ejemplo, Facebook Messenger siempre tiene burbujas de chat visibles en los bordes de la pantalla.
Mi pregunta es: ¿es posible detectar o bloquear en el código de Java cualquier aplicación que dibuje sobre mi aplicación?