2012-07-17 52 views
9

我正在檢測Android設備上的手勢和觸摸。問題是我的應用程序需要在其自己的視圖之外,其他應用程序甚至主屏幕上檢測這些手勢。換句話說,有沒有一種方法可以竊聽觸摸事件?我會想象有一些安全措施可以防止這種情況發生。我只需要證明這個概念,所以我會在開發設備上嘗試這種方法,在這種設備上我可以禁用任何可能阻止我這樣做的安全性(不會損害任何人或暴露他們的數據)。我可以竊聽Android觸摸事件嗎?

+0

我認爲你可以。我已經安裝了一個應用程序,它可以從我的電腦啓動GPS衛星,即使它沒有打開,也可以鎖定PC的屏幕。應用名稱是[AVG](https://play.google.com/store/apps/details?id=com.antivirus&feature=nav_result#?t=W251bGwsMSwxLDMsImNvbS5hbnRpdmlydXMiXQ ..) – 2012-07-24 13:17:51

+1

您是否嘗試使用後臺服務? – 2012-07-24 13:28:39

+0

謝謝阿德爾,但我不認爲這是同一類問題。我想使用手機上運行的另一個應用程序跟蹤在應用程序中發生的事件。 – pypmannetjies 2012-07-30 11:03:28

回答

5

你不能通過設計來做到這一點。如果Android允許你這樣做,這將是一個巨大的安全風險。想想看,如果你能做到這一點,你可以很容易地做出各種惡意應用程序,如鍵盤記錄器。至於後臺服務建議,不可能使用後臺服務來攔截來自其他應用的觸摸事件。基本上,谷歌已經這樣做了,你不能混淆另一個應用程序的生命週期或事件處理程序等等。事實上,即使你的代碼編寫不是意圖,Google也會考慮你想要做的惡意代碼。不是惡意的或非法的,它只是在Android選擇的安全範例之外,因此它被認爲是惡意的,所以Google會盡其所能不讓你這樣做。

+2

但是,如果你能控制框架,那麼當然可以完成。您需要使用修改後的手勢從源代碼編譯自己的Android構建,作爲框架的一部分。或者,您可以更改框架以允許其他應用攔截觸摸事件。它仍然不容易*,因爲這個答案提到它不在安全模型中。 – dcow 2012-07-24 15:45:02

+0

誠然,如果你可以製作自己的版本,那麼是的,你可以做任何你想做的事情。我正在假設OP不會控制設備上的Android構建。 :) – 2012-07-24 15:46:39

+0

謝謝你的回答。建議嘗試從源代碼編譯並更改框架。我想我的研究可以避免這樣做,並以另一種方式收集我的數據(這將節省時間),儘管我希望能夠證明概念。 – pypmannetjies 2012-07-30 11:02:01

1

嗯,這是非常非常有限的但你可以使用一個後臺服務的AccessibilityEvents跟蹤徘徊和屏幕探索,但同樣是非常有限的,但它並不要求你從任何特殊或魔法許可谷歌或建立自己的ROM哈哈,我希望這可以幫助:)