Seguimiento de gestos desde el service de Android

Estoy trabajando en una aplicación de testing UX, que debe rastrear gestos en silencio (desde un service, sin interceptar events).

Aquí está mi código actual :

class TrackService : Service(), View.OnTouchListener { private val DEBUG_TAG = "Gestures" var mWindowManager: WindowManager? = null var mDummyView: LinearLayout? = null override fun onBind(p0: Intent?): IBinder? { return null } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { return super.onStartCommand(intent, flags, startId) } override fun onCreate() { mWindowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager mDummyView = LinearLayout(this) val layoutParams = WindowManager.LayoutParams(1, WindowManager.LayoutParams.MATCH_PARENT) mDummyView!!.setLayoutParams(layoutParams) mDummyView!!.setOnTouchListener(this) val params = WindowManager.LayoutParams( 1, /* width */ 1, /* height */ WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL or WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, PixelFormat.TRANSPARENT ) params.gravity = Gravity.START or Gravity.TOP mWindowManager!!.addView(mDummyView, params) super.onCreate() } override fun onTouch(p0: View?, p1: MotionEvent?): Boolean { Log.e(DEBUG_TAG, p1.toString()) return false } 

Mi problema es que este código simplemente atrapa ACTION_OUTSIDE , por lo que no me permite identificar MotionEvent . Traté de modificar mi código para hacer que mDummyView tome toda la pantalla, pero si lo hago, los events son consumidos por esta Vista y no se transfieren a las otras Vistas (y aplicaciones).

¿Alguien sabe cómo puedo seguir los gestos sin atraparlos en mi service?