2013-06-01 72 views
0

有沒有辦法在AVD上訂閱已安裝應用程序的事件?我想要做的是,例如,當我在應用程序中的EditText字段中輸入任何文本時,我想要在程序中自動接收通知,並提供詳細信息(輸入的值)。有沒有什麼辦法可以從任何已安裝的apk訂閱Android應用程序事件?如果有框架或任何可以執行此操作的Android本地驅動程序,請提及它們。Android UI自動化:訂閱Android事件

+0

你可能想解釋一下你的背景。你所描述的場景看起來好像你想開發一個鍵盤記錄器,只要這似乎是你的問題的中心,我不認爲你會得到任何有用的答案。 –

+0

@Romiox不,這不適用於鍵盤記錄程序,而是適用於本機Android應用程序的自動測試。通過一個程序,我可以爲本機應用程序提供輸入,點擊應用程序中的按鈕等。我還想捕獲用戶交互,以便當用戶選擇一個字段時,點擊按鈕,我可以做進一步處理 – stamhaney

回答

1

看起來你也許可以做到通過Android設備的輔助API類似的東西。你需要編寫一個Accessibility Service,這需要安裝,然後通過控制面板明確啓用(這是一個安全措施,以防止任意應用程序訪問其他應用程序的UI的潛在敏感內容)。您的服務可以收聽AccessibilityEvents - 看起來像TYPE_VIEW_TEXT_CHANGED事件 - 「代表改變EditText文本的事件」 - 是您想要的。

+1

謝謝一噸:)這個工作! – stamhaney

+0

太棒了! - 很高興聽到它爲你工作! – BrendanMcK

0

你需要的是Google Analytics爲Android

+0

謝謝Uriel 。這需要修改應用程序的源代碼。我無法訪問該應用的源代碼。我想自動化所有安裝的應用程序的UI測試。有什麼方法可以不需要修改源代碼?例如,安裝任何全局事件偵聽器,它將適用於安裝在AVD上的所有應用程序? – stamhaney