2011-08-31 28 views
1

我做了一些研究,得出結論認爲afaik我不能擁有用於捕獲關鍵事件的Android服務。但是 - 也許有些人會有任何解決方法。我有一個播放器應用程序,我想用我的耳機上的一個特殊按鈕(包括我的三星Galaxy S)播放/暫停。這是用於接收和結束通過電話線設置的電話的按鈕。我測試過這個按鈕 - 它等於KeyCode.KEYCODE_BUTTON_Bconst (79)。當我的播放器在屏幕上時,它可以被處理,但是當我的手機被鎖定時(屏幕關閉),我還想播放/暫停。你認爲這是可能的嗎? 對於調用reciving,我認爲android使用了一個技巧:有人調用時,屏幕變爲活動狀態,並且調用recive活動可以處理關鍵事件(我認爲 - 這是如何工作的,但我可能是錯的)。 我不知道 - 如何使用此按鈕播放/暫停我的應用程序。Android服務中的重要事件

回答

0

我不認爲有什麼真正的好方法來實現你想要從應用程序級別做什麼。但是我可以想出的一個可能的解決方案是:

聽取屏幕關閉和意圖。當您收到SCREEN_OFF時,啓動一個「空白」活動,除了聽您的按鈕按下並將其傳遞到您的音樂服務。 當您收到SCREEN_ON finish()這個空白的活動。

我不確定這種方法是否有效,但我使用了類似的功能,可以在屏幕關閉時聽音量按鈕按下。

有關偵聽SCREEN_OFF和SCREEN_ON意圖的注意事項。當我這樣做時,我不得不在java代碼而不是清單中爲接收器設置過濾器。出於某種原因,當我從清單中設置意圖過濾器時,它沒有正確接收這些意圖。

+0

蒂姆 - 謝謝你的想法。我會檢查它的目的。 – yacool