getActivity / EasyWindow

Android 悬浮窗框架,好用不解释
Apache License 2.0
1.46k stars 162 forks source link

[Bug]:悬浮窗应用于无障碍模拟点击出现的问题 #75

Open rianlu opened 3 weeks ago

rianlu commented 3 weeks ago

框架版本【必填】

v10.62

问题描述【必填】

我现在使用EasyWindow显示悬浮窗,并且获取悬浮窗的坐标,使用无障碍五福模拟点击,但是我发现一个问题,就是模拟点击实际已经生效,但是似乎点在了悬浮窗上,没有往下透传(这里我做了一个测试,就是开启模拟点击以后,移开悬浮窗,点击能够正常生效)

后面我设置了setWindowType(WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY),点击能够透传了,但是悬浮窗的UI消失了。。。,就很奇怪,

复现步骤【必填】

通过悬浮窗标记要点击的位置,通过无障碍模拟点击 以下是无障碍模拟点击的代码片段

val builder = GestureDescription.Builder()
        val path = Path()
        path.moveTo(pointX, pointY)
        path.lineTo(pointX, pointY)
        builder.addStroke(GestureDescription.StrokeDescription(path, 0, 1))
        val gesture = builder.build()
        dispatchGesture(gesture, object : GestureResultCallback() {
            override fun onCancelled(gestureDescription: GestureDescription) {
                super.onCancelled(gestureDescription)
            }

            override fun onCompleted(gestureDescription: GestureDescription) {
                super.onCompleted(gestureDescription)
            }
        }, null)

是否必现【必填】

项目 targetSdkVersion【必填】

34

出现问题的手机信息【必填】

Redmi Note 12 Turbo

出现问题的安卓版本【必填】

Android 14

问题信息的来源渠道【必填】

自己遇到的

是部分机型还是所有机型都会出现【必答】

全部

框架最新的版本是否存在这个问题【必答】

框架文档是否提及了该问题【必答】

是否已经查阅框架文档但还未能解决的【必答】

issue 列表中是否有人曾提过类似的问题【必答】

是否已经搜索过了 issue 列表但还未能解决的【必答】

是否可以通过 Demo 来复现该问题【必答】

提供报错堆栈

No response

提供截图或视频

https://github.com/user-attachments/assets/05be72e0-b991-4513-afda-c4f91a67fe47

提供解决方案

No response

getActivity commented 3 weeks ago

FloatingX?这个不是我的框架,你是不是找错人了?

rianlu commented 3 weeks ago

FloatingX?这个不是我的框架,你是不是找错人了?

打错名字了,尴尬,我现在用的确实是您的框架EasyWindow,您方便的话看看我描述的这个问题,是什么情况

getActivity commented 3 weeks ago

上传一个可供复现的 demo 工程给我

rianlu commented 3 weeks ago

上传一个可供复现的 demo 工程给我

直接运行就可以看到了,我写了两种打开方式,区别就是是否添加setWindowType(WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY) EasyWindow.zip

getActivity commented 3 weeks ago
image
getActivity commented 3 weeks ago

代码怎么没有看到?

rianlu commented 3 weeks ago

代码怎么没有看到?

有的,你看看是不是我的demo和你的重名了,我这边解压能看到

image
getActivity commented 3 weeks ago

EasyWindow-10.8.aar.zip

getActivity commented 3 weeks ago
image
getActivity commented 3 weeks ago

你如果要设置 Window 类型为 TYPE_ACCESSIBILITY_OVERLAY,传入的上下文的类型应该是 AccessibilityService,你下载上面的 aar 包,然后修改一下这块的代码即可。