Android WindowManager.LayoutParams组合,可将事件传递到类型为\u SYSTEM\u ALERT或smilar的层

Android WindowManager.LayoutParams组合,可将事件传递到类型为\u SYSTEM\u ALERT或smilar的层,android,layoutparams,motionevent,android-windowmanager,Android,Layoutparams,Motionevent,Android Windowmanager,有人能帮我找到WindowManager.LayoutParams组合,它可以将事件传递到类型为\系统\警报或类似叠加类型(位于每个其他窗口的顶部)下的层 问题: 我的问题是,当窗口类型type_SYSTEM_警报获得焦点时,它会停止将运动事件传递给它下面的其他应用程序 示例代码 WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.TYPE_S

有人能帮我找到WindowManager.LayoutParams组合,它可以将事件传递到类型为\系统\警报或类似叠加类型(位于每个其他窗口的顶部)下的层

问题: 我的问题是,当窗口类型type_SYSTEM_警报获得焦点时,它会停止将运动事件传递给它下面的其他应用程序

示例代码

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
        WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
        WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE |
        WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
        PixelFormat.TRANSLUCENT);
要求: 我需要得到类型_SYSTEM _ALERT或类似的叠加类型,它们位于每个其他窗口的顶部,还需要获得运动事件,并将运动事件传递给顶层下的任何叠加(可能是类型_SYSTEM _ALERT)


我需要它保持在所有其他窗口的顶部,因为我需要在所有窗口的顶部绘制图像,而不中断运动事件。

从文档中可以看出:

类型\系统\警报-窗口类型:系统窗口,如低功耗 警觉的。这些窗口始终位于应用程序窗口的顶部。在里面 多用户系统仅显示在拥有用户的窗口上

链接此处:

我对此进行了一些测试,这意味着视图显示在几乎所有内容的顶部(包括自Android 6.0以来的权限对话框),导致它们失去焦点。键盘保护层仍然保持在顶部。是的,您可能会丢失视图上的
focusable
属性,但您可能会处理touch listener中的所有内容。例如,看看这篇文章: