2017-04-24 249 views
2

有可能點擊(與AccessibilityService)被放置裏面具體的網頁視圖按鈕?例如,某些應用程序A在MainActivity內部具有webview。活動開始後,web內容在webview中加載。加載的網頁包含帶有文字「聊天」的按鈕。我可以通過輔助功能服務單擊此按鈕嗎?我知道我可以執行單擊Android本機窗口小部件(android.widget.Button,TextView等),但我不知道如何執行單擊web視圖內的網頁上顯示的按鈕。請幫助輔助功能服務和webview?

+0

您可以通過重寫你點擊那個按鈕,在你做任何你想做的事情 –

+0

我的應用程序,方法後得到的URL爲此包含一個與它自己的服務運行光標,當我點擊它執行任何圖標點擊,如果我超出了我的應用程序並運行其他app appain webview然後performAction不工作。 –

+0

@AkashDubey我認爲Rohit希望點擊沒有用戶觸摸屏幕。也來自後端服務。他將如何使用屏幕座標獲取鏈接上的焦點,而無需觸摸屏幕? – usman

回答

1

這是一個複雜的答案。是的,你可以點擊視圖,但是這取決於Web開發者如何實現按鈕。如果他們做了一些愚蠢的事情,比如實現了觸摸,可能會觸及聽衆,而不是onClick聽衆,這可能會被打破。建議:使用TalkBack。如果TalkBack無法使用,則無法執行此操作。如果是的話,下面的代碼應該爲你工作:

AccessibilityNodeInfo info = ...; 

info.performAction(AccessibilityNodeInfo.ACTION_CLICK); 

旁註:有執行能力的,從無障礙服務,僞造真實的硬件事件的Android的謠言。到目前爲止,我只看到它在Android的演示中使用,並且只在系統應用程序(具有提升的權限)中使用。留意你需要的API來完善它,它們實際上可能藏在某個地方,但我還沒有看到它們被公開。

+0

在對講中,如果我們啓用「單擊點擊」,則單擊不能用於網頁(在通過前一個點擊關注鏈接之後)。這表明performAction(CLICK)不適用於網頁。鏈接工作的雙擊,但我想雙擊是內部處理,我們沒有訪問權限。 – usman

+0

單擊是實驗性的,我不會將它用作任何事物的度量標準。 – ChrisCM

+0

是的,但在單擊它執行操作(點擊),它適用於除網頁和鍵盤以外的所有其他視圖。它至少表明performAction(CLICK)不能在Web頁面上工作。 ? – usman

-1

我想你可以做這樣的事情?

Button button = (Button)findViewById(R.id.ButtonId); 
button.onClick(.....); 
+0

我的應用程序包含一個與它自己的服務來運行,當我點擊它進行點擊,如果我出我的應用程序和運行其他應用程序,coantain的WebView的performAction然後不工作的任何圖標的光標。 –

+2

在AccessibilityService中!這個代碼的零機會將起作用。 AccessibilityServices無權訪問應用視圖,只有基於輔助功能的視圖表示。 – ChrisCM