Android中如何禁止音量調節至靜音


Android中音量按鍵在調低音量時,如果一直按住Down按鈕不放,則系統將音量跳到最小后,又自動調節到靜音狀態。這個機制和iPhone是不同的,iPhone中無論你怎么按Volume-按鈕,只能調到最小,還是有一點聲音,是不能自動靜音的。

Android中如果要禁止這個自動靜音功能,也是有辦法的,找到Down按鈕的處理事件,做個判斷就行了,代碼在:

frameworks/base/media/java/android/media/AudioManager.java

public void handleKeyDown(KeyEvent event, int stream) {
        int keyCode = event.getKeyCode();
        switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_UP:
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                /*
                 * Adjust the volume in on key down since it is more
                 * responsive to the user.
                 */
                int flags = FLAG_SHOW_UI | FLAG_VIBRATE;
                /* avoid auto mute when adjust lower */
                int currentVolume = getStreamVolume(STREAM_MUSIC);
                Log.e(TAG, String.format("currentVolume=%d", currentVolume));
                if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && currentVolume <= 1) {
                    break;
                }
                if (mUseMasterVolume) {
                    adjustMasterVolume(
                            keyCode == KeyEvent.KEYCODE_VOLUME_UP
                                    ? ADJUST_RAISE
                                    : ADJUST_LOWER,
                            flags);
                } else {

 


免責聲明!

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



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