2013-04-24 74 views
1

我正在研究製作一個應用程序,防止音量上/下按鍵的默認操作,並希望得到一些輸入,看看我是否會浪費我的時間嘗試。安卓 - 阻止鎖定硬件按鈕

下面是設置:

我有一個三星Galaxy S3。我喜歡聽音樂。通常我會無意中改變手機鎖定時和我口袋裏播放的音量。

起初我認爲它會很簡單;已經測試了用於檢索音量鍵的整數值的onKeyDown()方法的簡單覆蓋。我很快意識到,只有當我不鎖定手機並保持該應用程序打開時,這纔會起作用。

接下來,我發現了一些關於服務的文章,但是我相信這也不符合我的需求,因爲它不是Activity的子集,所以不實現onKeyDown();除非我錯了,否則喚醒鎖實際上會喚醒和/或解鎖手機?

現在應該放棄還是實際可以實現?
(實際上它必須能夠爲這整個的一點是,我沒有支付£3這一個功能的應用程序笑)。

注:運行4.2.1
新到Android ,但不適用於Java。

Steve。

編輯:只是一個想法,但如果我延長活動,以我自己的類(和覆蓋的onkeydown),並實例化它的服務作爲一個靜態實例,將是自定義活動持續,而手機被鎖定?

編輯2:我發現this SO post建議使用FLAG_SHOW_WHEN_LOCKED。我就開始看這個,當我回家,但我仍然是開放的建議和意見:d

編輯3: 可以這麼告訴我,如果我從這裏開始失去情節...
使用廣播接收器,我將監聽ACTION_SCREEN_OFF標誌。如果被調用,創建我的自定義活動(與onKeyDown()覆蓋),並將其設置爲FLAG_SHOW_WHEN_LOCKED接管我的鎖屏(我不關心,因爲屏幕關閉)。接收者然後監聽ACTION_SCREEN_OFF,如果被調用,它會在顯示屏幕之前銷燬活動(或之後,如果它閃爍,我不會感到困擾)。 (甚至可能只是暫停它,並且只有在它檢測到解鎖時才殺死它)。

同樣非常感謝@StoneBird讓我走得這麼遠,有時候它會幫助我們把它與一個知道在說什麼(希望^ _-)的人散列出來。

回答

0

試試這個嗎?

Settings.System

你可以這樣開始每隔1毫秒的服務,並設置系統音量保持在一個穩定的水平。由於該值每1毫秒被覆蓋一次,因此不需要進行密鑰檢查。

另外,市場上有免費的數量管理員,所以你不必爲此付費。

+0

這是人們如何實現這種類型的功能在android供電設備?要有一個恆定的循環(在我自己的線程中,我假設),這是不斷設置音量值?對我來說,這似乎是不好的做法,但如果我錯了,一定要糾正我。 – Steve 2013-04-25 08:10:13

+0

我在尋找聽衆,但找不到任何相關的東西,所以我想出了這個想法,這實際上是一種暴力風格的東西。但是,您可以偵聽「ACTION_SCREEN_OFF」和「ACTION_SCREEN_ON」來控制何時啓動循環。這些是全系統廣播。 – StoneBird 2013-04-25 15:56:03

+0

當您有一項活動並希望它在鎖定狀態下工作時,'FLAG_SHOW_WHEN_LOCKED'非常有用。但是你必須先開始你的活動。 – StoneBird 2013-04-25 15:59:00