我正在實現Android 2.3的屏幕截圖功能(我知道ICS已經有屏幕截圖功能)。我使用Android Screenshot Library(簡稱ASL)項目作爲基礎,並且正在修改它以適應我的需要。我也可以自由修改Android的源代碼。我們的目標是擁有像Galaxy Note一樣的東西:您可以通過按鍵組合鍵進行截圖,然後出現一個編輯器,讓您可以隨意更改圖像。你可以在任何地方截取屏幕截圖:在主屏幕上,同時使用應用程序等。將屏幕截圖功能添加到Android 2.3
現在我有3個工作部件:捕獲屏幕緩衝區的本機二進制文件,與本機二進制文件進行通信並檢索屏幕截圖和編輯器。但我不確定我怎樣才能把這三樣東西結合在一起。本地二進制文件可以添加到Android預編譯部分,init.rc可以修改爲在啓動時以root用戶身份執行(但我仍然需要這樣做)。該編輯器是一款簡單的應用程序,也可以包含在Android中。但我仍然無法弄清楚如何處理這項服務。
理想情況下,我想捕獲一個按鍵組合(如電源按鈕和音量減小,或者可能是兩個前面的按鈕),這將觸發該服務。然後該服務會調用二進制文件截取屏幕截圖並啓動一個打開編輯器的意圖。然而,據我所知,一項服務無法抓住按鍵。此外,爲了知道何時必須截圖,服務必須被綁定,所以我想我應該修改Android本身來啓動服務並在啓動時綁定它,但是有關Android源代碼的文檔缺乏我不知道從哪裏開始尋找。
有誰知道Android的哪個組件負責按鍵,以及我應該在哪裏綁定我的服務?我的方法甚至有可能嗎?
非常感謝您提供任何可能的幫助。
我無法弄清楚如何與按鍵進行交互(但是),但是我通過檢測用戶何時搖動手機來實現解決方法,實現起來非常簡單。如果我發現如何做我想做的事,我會用答案更新我的問題。 – ziritrion