簡體   English   中英

Android dispatchKeyEvent, onKeyDown 回調不適用於手勢音量控制(Huawei mate 30 pro)

[英]Android dispatchKeyEvent , onKeyDown callbacks not working with gesture volume control (Huawei mate 30 pro)

我添加了 dispatchKeyEvent 和 onKeyDown 來檢測 Activity 中的音量變化事件,這些事件在具有物理音量按鈕的設備上運行良好。 在華為 mate 30 pro 的情況下,上述事件不會觸發,因為它沒有物理音量按鈕,而是一個控制音量的手勢。 有什么解決辦法嗎??

 override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
    d(TAG, "signal onKeyDown $keyCode")
    when (keyCode) {
        KeyEvent.KEYCODE_HOME -> {
            d(TAG, "signal onKeyDown KEYCODE_HOME")
            if (alertDialog != null && alertDialog?.isShowing == true) {
                releaseDataAndFinishActivity()
            }
           
            return false
        }
        KeyEvent.KEYCODE_BACK -> {
            onBackPressed()
            return false
        }
        KeyEvent.KEYCODE_VOLUME_DOWN -> {
            updateVolumeOnKeyPress(false)
            return true
        }
        else -> return true
    }
}

override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
        updateVolumeOnKeyPress(true)
        return true
    }
    return false
}

override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
    d(TAG, "signal dispatchKeyEvent $event")
    return super.dispatchKeyEvent(event)
}

關於如何檢測Mate30 Pro Activity中的音量變化事件,可以通過監聽android.media.VOLUME_CHANGED_ACTION廣播來實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM