2017-07-07 45 views
0

我想使用的无障碍service.when我找到FORCE STOP按钮,点击力停止按钮我点击它使用:的Android无障碍服务ACTION_CLICK不与窗口覆盖工作

childNodeView.performAction(AccessibilityNodeInfo.ACTION_CLICK); 

这是成功的在普通情况下,但是当我尝试使用窗口管理器覆盖隐藏用户进程时,点击不起作用。这使得自也许是因为有一个屏幕上的按钮,我想点击,但有Play商店具有所描述的功能与窗口覆盖

这些都是我的窗口管理器PARAMS几种应用:

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
      WindowManager.LayoutParams.MATCH_PARENT, 
      WindowManager.LayoutParams.MATCH_PARENT, 
      WindowManager.LayoutParams.TYPE_PHONE, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      PixelFormat.TRANSLUCENT); 


    params.gravity = Gravity.TOP | Gravity.START; 
    oneTapProgressView = new OneTapProgressView(this); 
    windowManager.addView(oneTapProgressView, params); 

注:我从一个不同的服务从辅助服务

如何执行与窗口覆盖点击运行此不?

回答

1

我相信这是与覆盖类型有关。特别是TYPE_PHONE。电话覆盖有特殊的机制来捕捉事件,以便用户不会为了在电话上交谈而不小心触摸按钮。

你应该尝试不同的类型。对于Android的Ø尝试:

TYPE_APPLICATION_OVERLAY 

对于之前的操作系统,你想:

TYPE_SYSTEM_ALERT 

这两项将需要以下权限:

SYSTEM_ALERT_WINDOW 

此外,下面的标志可能是有用的如果上述单独不能解决它:

FLAG_NOT_FOCUSABLE 
+0

感谢它的工作!还要感谢O. – BennyP

+0

后续问题中的TYPE改变问题:可访问性仅适用于FLAG_NOT_FOCUSABLE。此标志取消覆盖视图中的所有点击监听器。有没有办法处理覆盖视图中的FLAG_NOT_FOCUSABLE集的点击事件? – BennyP

+0

不是。但是我很难推荐其他选择,因为如果我看到可访问性功能正常工作而不是其他情况,这会让我感到困惑。有没有一款应用展示了您在Google Play上需要的行为? – ChrisCM