0

我正在實現Android 2.3的屏幕截圖功能(我知道ICS已經有屏幕截圖功能)。我使用Android Screenshot Library(簡稱ASL)項目作爲基礎,並且正在修改它以適應我的需要。我也可以自由修改Android的源代碼。我們的目標是擁有像Galaxy Note一樣的東西:您可以通過按鍵組合鍵進行截圖,然後出現一個編輯器,讓您可以隨意更改圖像。你可以在任何地方截取屏幕截圖:在主屏幕上,同時使用應用程序等。將屏幕截圖功能添加到Android 2.3

現在我有3個工作部件:捕獲屏幕緩衝區的本機二進制文件,與本機二進制文件進行通信並檢索屏幕截圖和編輯器。但我不確定我怎樣才能把這三樣東西結合在一起。本地二進制文件可以添加到Android預編譯部分,init.rc可以修改爲在啓動時以root用戶身份執行(但我仍然需要這樣做)。該編輯器是一款簡單的應用程序,也可以包含在Android中。但我仍然無法弄清楚如何處理這項服務。

理想情況下,我想捕獲一個按鍵組合(如電源按鈕和音量減小,或者可能是兩個前面的按鈕),這將觸發該服務。然後該服務會調用二進制文件截取屏幕截圖並啓動一個打開編輯器的意圖。然而,據我所知,一項服務無法抓住按鍵。此外,爲了知道何時必須截圖,服務必須被綁定,所以我想我應該修改Android本身來啓動服務並在啓動時綁定它,但是有關Android源代碼的文檔缺乏我不知道從哪裏開始尋找。

有誰知道Android的哪個組件負責按鍵,以及我應該在哪裏綁定我的服務?我的方法甚至有可能嗎?

非常感謝您提供任何可能的幫助。

+0

我無法弄清楚如何與按鍵進行交互(但是),但是我通過檢測用戶何時搖動手機來實現解決方法,實現起來非常簡單。如果我發現如何做我想做的事,我會用答案更新我的問題。 – ziritrion

回答

1

看一看here。它建議使用相機按鈕,這肯定比重載其他系統按鈕更好。

+0

感謝您的回答!我非常害怕我的問題會被其他人埋沒。雖然我的設備沒有專用的相機按鈕;它只有電源和音量按鈕,以及正面的典型4個電容式按鈕。然而,在你的鏈接中的一個答覆(我一直在尋找幾天,我還沒有看到這個問題!)指向InputMethodService,我馬上要看看。再次感謝! – ziritrion

+0

但爲什麼按鈕?如果我沒有記錯的話,Dropcap依靠G-sensor:您搖動設備並截取屏幕截圖。您可以編程其他模式,例如背部或類似的雙擊。另一種可能性是延遲屏幕截圖:您啓動屏幕分析應用程序,按一下按鈕,然後有5秒鐘返回到您想截取屏幕截圖的應用程序。 –

+0

這是一種可能性,但由於Android ICS通過按下電源按鈕+音量降低了音量,我想以相同的方式進行操作。但是,即使我使用G-sensor或其他方法來做,我仍然不確定如何在全球範圍內捕獲這些數據,然後訪問我的守護進程:服務?如果是這樣,我把它放在哪裏?我不打算在Google Play中銷售應用程序;我正嘗試使用此功能爲特定設備構建我自己的Android圖像。 – ziritrion