Android防止查看消耗事件

我正在尝试创建一个将用于记录所有MotionEvent的视图。 这个视图是在一个Service() ,这是从应用程序链接到我需要记录的事件。

我的问题是,当这个视图在应用程序的顶部,根据需要,所有的事件都在这个视图中消耗。

有没有办法阻止这个视图消耗事件,并​​让View在后面消耗它?

这里是Service()的代码

 class GestureTrackViewService : Service(), View.OnTouchListener { 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 { val params = WindowManager.LayoutParams( 1080, /* width */ 1920, /* 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 mDummyView!!.isFocusable = false mDummyView!!.isClickable = false mWindowManager!!.addView(mDummyView, params) return super.onStartCommand(intent, flags, startId) } override fun onCreate() { mWindowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager mDummyView = LinearLayout(this) val params = WindowManager.LayoutParams(1, WindowManager.LayoutParams.MATCH_PARENT) mDummyView!!.layoutParams = params mDummyView!!.setOnTouchListener(this) super.onCreate() } override fun onTouch(p0: View, p1: MotionEvent): Boolean { Log.e("SERVICE", "X: ${p1.rawX} || Y: ${p1.rawY}") mDummyView!!.requestDisallowInterceptTouchEvent(false) return false } 

}

我想实现的是不可能使用Service()

相反,我使用了一个自定义的根View并实现了dispatchTouchEvent()

这个响应的来源在这里: onInterceptTouchEvent只获取ACTION_DOWN