Вопрос о действиях с громкостью удаленных контроллеров в Android TV

#java #android #television

#java #Android #телевидение

Вопрос:

Я создаю webview в своем телевизионном приложении и, похоже, не могу переопределить метод onKeyDown, когда дело доходит до увеличения / уменьшения громкости. Когда я запускаю его на эмуляторе мобильного устройства или планшета, он работает, но на эмуляторе телевизора или Android tv он ничего не делает, кроме регулировки громкости. Есть ли способ переопределить регулятор громкости? Я знаю, что, возможно, глупо играть с регулировками громкости, но это единственные свободные кнопки на пульте дистанционного управления, а звук не является частью приложения.

Это раздел

 @Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){
        myMethod1();
        return true;
    } else if(keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
        myMethod2();
        return true;
    }
    super.onKeyDown(keyCode, event);
    return true;
}
  

Ответ №1:

У меня такая же проблема. Система Android TV не может переопределять регуляторы громкости. Вы должны запустить таймеры обратного отсчета, чтобы узнать громкость и выполнить действие.

 new CountDownTimer(time * 1000, 1000) { 
        public void onTick(long millisUntilFinished) {
        }
        public void onFinish() {
            int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
            ...
        }
    }.start();