Disposición de superposición de Android encima de todas las ventanas que recibe toques

He creado una vista que se muestra en la parte superior de todas las aplicaciones y ventanas con el código siguiente:

//These three are our main components. WindowManager wm; LinearLayout ll; WindowManager.LayoutParams ll_lp; //Just a sample layout parameters. wm = (WindowManager) getSystemService(WINDOW_SERVICE); ll_lp = new WindowManager.LayoutParams(); ll_lp.format = PixelFormat.TRANSLUCENT; ll_lp.height = WindowManager.LayoutParams.FILL_PARENT; ll_lp.width = WindowManager.LayoutParams.FILL_PARENT; ll_lp.gravity = Gravity.CLIP_HORIZONTAL | Gravity.TOP; //This one is necessary. ll_lp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; //Play around with these two. ll_lp.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; ll_lp.flags = ll_lp.flags | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; //This is our main layout. ll = new LinearLayout(this); ll.setBackgroundColor(android.graphics.Color.argb(50, 255, 255, 255)); ll.setHapticFeedbackEnabled(true); ll.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Toast.makeText(getApplicationContext(), "TOUCHED", Toast.LENGTH_SHORT).show(); return false; } }); //And finally we add what we created to the screen. wm.addView(ll, ll_lp); 

Debido a que FLAG_NOT_TOUCHABLE está establecido, sólo muestra la vista pero no recibe ningún evento táctil. La aplicación detrás de la vista recibe todos los eventos táctiles. Sin embargo, si no establezco el indicador, sólo la vista recibe los toques que hacen que la aplicación detrás de él no reciba ninguno.

¿Hay alguna manera de que la vista y la aplicación detrás de ella reciban toques? He intentado volver falso pero sigue siendo lo mismo.

Cualquier ayuda sería muy apreciada!

Si no estoy confundiendo, la vista que está en el fondo no está recibiendo eventos táctiles porque su ser filtrada por el sistema para evitar "click jacking" exploits.

Es posible que pueda evitar esta característica del sistema desactivando el filtrado de eventos táctiles para la vista en segundo plano mediante el método View.setFilterTouchesWhenObscured (Boolean) .

Creo que esta biblioteca puede ayudarle en lo que desea https://github.com/pingpongboss/StandOut

  • Tabla de Donuts Android
  • Establecer el ancho y la altura de la imagen en ImageView
  • Recuperar el adaptador original de expandiblelistview con el encabezado
  • ExpandableListView OnGroupCollapseListener - cualquier oyente / observador para ANTES que ocurra el colapso?
  • Detecta qué vista se desliza el dedo en Android
  • Altura dinámica de Android ExpandableListView
  • archivo interno del HTML de la demostración del androide
  • Cómo traer una vista al frente sin llamar bringToFront ()?
  • Transferir el enfoque táctil a otra vista
  • PivotX y PivotY en ScaleAnimation no tiene ningún efecto
  • Animación de la traducción y ampliación de la vista en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.