2012-12-19 40 views
5

我目前正在研究一個涉及人們在Android設備上玩遊戲的研究項目。我希望能夠編寫一個記錄加速度計和觸摸事件的Android應用程序。我希望我的用戶能夠玩憤怒的小鳥等遊戲,同時記錄他們的觸摸數據。如何在所有應用程序中記錄Android設備上的所有觸摸和加速度計

據我瞭解,這種類型的數據收集是可能從內部應用程序,但有可能從應用程序之外? (也許通過在後臺運行的應用程序?)

如果這是不可能的,是否有其他的選擇? (我相信我理論上可以進入android操作系統的源代碼,並做到這一點呢?)

+0

http://stackoverflow.com/questions/11322188/receiving-touch-events-from-a-service-solution這可能會幫助你。看看RubberBigPepper的答案。 –

回答

4

我明白,這種類型的數據收集是可能的從應用程序內部,但它可能從外部的應用程序? (也許通過在後臺運行的應用程序?)

對於觸摸事件,不,因爲明顯的隱私和安全原因。它使用是可能的(研究術語「tapjacking」),但目前的Android版本最終阻止了這種行爲。

對於加速計事件,您可以記錄這些事件,因爲它們對於所有應用程序同時都是相同的。請記住,您的採樣率可能與正在使用的應用程序的採樣率不完全相符。

我相信我理論上可以進入android操作系統的源代碼,並做到這一點?

是的,儘管你會那麼需要把該修改的Android系統成爲ROM國防部和設備安裝。

+0

秒鐘打我! +1 :) –

2

應用程序都不允許做這樣的安全設備上(即消費者手機/平板電腦還沒有被「紮根」)。

但是,根據您的需要,可能將開發工具連接到計算機。如果您可以在每個受控環境試用之前做一些適度煩人的設置,我相信您可以通過使用USB電纜將ADB切換到wifi模式,然後通過無線ADB會話監控輸入事件,從而在一些庫存設備上執行此操作。見

http://source.android.com/tech/input/getevent.html

該文件似乎在暗示,「蘇」需要(這是奇怪的是官方的「蘇」是不可以被非root用戶),但它沒有工作在許多股票的設備。

你可能也想運行logcat來找出前臺的應用程序。

相關問題