将窗口覆盖上的触摸事件传递给其后面的活动

一些背景。
我有一个与WindowManager一起添加的RelativeLayout,类型为TYPE_SISTEM_ALERT ,标志为FLAG_NOT_TOUCH_MODAL FLAG_WATCH_OUTSIDE_TOUCH
我可以在这个RelativeLayout上或者在“后面”的活动中获得触摸事件,但只要它不是“RelativeLayout窗口”的一部分就添加了。

在此处输入图像描述 *黑条是我的RelativeLayout上的视图;
*红色矩形是此RelativeLayout的整个容器;
*黄色的星星是黑色视图中创造的空间点;
*空格是此RelativeLayout窗口顶部的活动。

想象一下,在活动A的黄色星点上有一个按钮,但对于用户来说是可见的,如果他点击那里的话。
活动A的按钮应该能够响应,即使它在这个RelativeLayout窗口的“后面”。

我的推荐,但遗憾的是到目前为止没有成功的是:

  1. Android叠加来抓取所有触摸,然后传递它们?
  2. Android:多点触控和TYPE_SYSTEM_OVERLAY

这有解决方法吗?

这有解决方法吗?

如果相关活动是您自己的活动,请删除系统级叠加层并在活动自己的视图层次结构中实现叠加层。

如果有问题的活动不是您自己的活动,那么AFAIK无法满足您的需求。 Android中的Windows,至少目前只是纯粹的矩形; 我知道您无法将窗口设置为非矩形,并且活动确实是这些透明区域中最顶层的项目。 并且,出于安全原因(tapjacking攻击),自Android 4.0以来,传递触摸事件已被阻止。