2011-11-06 49 views
0

我需要爲Android創建應用程序,其中一個要求是,當我按下某個鍵(例如音量鍵)時,我的手機需要告訴我未讀郵件的數量。一切工作正常:我可以通過文本到語音向用戶講述未讀消息,我有一個廣播接收器,一個活動和一個服務。在活動中,您可以啓動或停止服務,並在服務中計算未讀郵件,但現在我必須知道如何在te服務運行時捕獲手機主屏幕上的按鍵事件,因爲按鍵時,我需要告訴用戶有多少條消息未讀。在活動中,捕獲鍵事件很簡單,但它也必須在服務運行且不在活動中時起作用。也許我可以用廣播接收機來做,但我不知道如何。Android在服務中捕獲KeyEvent

+0

我猜這是非常可撤銷的東西。或者至少我會發現它是非常侵入性的,如果您的應用程序彈出一次,我想調整主屏幕上的鈴聲音量。告訴你的經理這是Android爲此目的使用小部件的方式。 – harism

回答

1

在活動中,捕獲鍵事件很簡單,但它也必須在服務正在運行且不在活動中時工作。

這不支持。您可以得到最接近的是ACTION_CAMERA_BUTTONACTION_MEDIA_BUTTON,但並非所有用戶都擁有這些按鈕,並且只有當用戶按下按鈕並且前景活動不消耗該事件時纔會廣播它們(例如,使用CAMERA按鈕作爲快門觸發器)。