Android:監聽音鍵並屏蔽系統的音量調節


做一個小項目時,想用音量鍵來調節屏幕亮度,但又想把系統默認的“音量調節”屏蔽掉;在網上查了一些資料,發現用onKeyDown()可以做到,用return ture;  來攔截系統操作來實現自己想要的操作。

代碼如下:

 1     public boolean onKeyDown(int keyCode, KeyEvent event) {
 2         // TODO Auto-generated method stub
 3         if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN){
 4             i--;
 5             txt.setText("down------->"+i);
 6             return true;
 7         }
 8         else if(keyCode==KeyEvent.KEYCODE_VOLUME_UP)
 9         {
10             i++;
11             txt.setText("up------->"+i);
12             return true;
13         }
14         else return super.onKeyDown(keyCode, event);
15     }

但是測試時,可以做到用音量鍵控制你需要的功能,也可以屏蔽音量調節,音量的確不能調節了,
調節音量的對話框也確實屏蔽掉了,唯獨不能屏蔽掉調節音量的聲音;后來嘗試着復寫onKeyUp()方法,結果很令人滿意,能屏蔽掉聲音了;這是什么原因呢?我猜測或許是與聲音相關的代碼在onKeyUp()執行的吧。

代碼如下:

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN){

            return true;
        }
        else if(keyCode==KeyEvent.KEYCODE_VOLUME_UP)
        {

            return true;
        }
        else return super.onKeyUp(keyCode, event);
    }


以上僅為個人記錄,以便以后查略;如有錯誤,歡迎指正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM