2017-07-07 170 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