2012-05-06 18 views
0

我是一個Android的新手,我試圖使一個應用程序響應像硬件輸入像相機按鈕,免提通話答案按鈕等。創建一個Android應用程序來響應特定的硬件輸入

例如拿相機按鈕。當它被按下時,默認相機應用程序啓動。我想要做的是防止默認響應,並讓我的應用程序對此作出響應。我知道有可能取代相機應用程序,但那不是我所期望的。

當按鈕被按下時,我的應用程序應該先運行,一旦我的應用程序完成,我的應用程序將直接指向相機應用程序。如果這是可能的,請指點我正確的方向

回答

2

目前,ACTION_CAMERA_BUTTON是一個有序廣播。您可以創建具有更高優先級的<intent-filter>,以嘗試在固件自帶的相機應用程序之前獲得控制權,執行您想要的操作,並致電abortBroadcast()以防止較低優先級的過濾器接收此廣播。

但是:

  • 你沒有辦法知道在編譯時的優先級是在固件中的相機應用,或者用戶可以安裝任何其他的相機應用程序的內容。

  • ACTION_CAMERA_BUTTON沒有記錄爲有序廣播。因此,舊版本的Android可能沒有訂購,未來版本的Android可能沒有訂購,設備製造商也不一定要保持訂購。

  • 很少有設備有一個攝像頭按鈕

+0

我忘記了我的答案中的順序/優先級的東西,給你很好的答案+1。 –

0

這是故意留給用戶來決定,當你按下例如按相機鍵(做什麼,如果手機有這樣的按鈕,大多數不!)。默認情況下,它會打開相機應用程序,但聽起來您已經知道這一點以及如何註冊活動以接收這些活動(意圖)。

這會讓用戶選擇在按下該按鈕時使用哪個應用程序(或者說Activity)。如果用戶想要他可以在列表中選擇您現在將彈出的活動(因爲現在有兩個選項可以處理相機按鈕)。他/她也可以選擇始終使用列表中的某個選項。所以如果你的應用是用戶想要的,他可以選擇它,如果他/她總是希望你的應用在按下按鈕時他/她也可以指定。

相關問題