1

在我的 Android TV 上,如果我在后台启动 Pandora 并播放音乐,然后启动我的应用程序。从我的应用程序中,如果我按下暂停或下一步,它会在我的应用程序上收到这些信息,但也会影响 Pandora。

如何防止后台应用程序接收这些输入。我尝试获得有效停止音乐的音频焦点,但如果再次输入按钮,音乐将恢复。

有任何想法吗?

这是我捕获远程输入的代码。

public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((event.getSource() & InputDevice.SOURCE_DPAD) == InputDevice.SOURCE_DPAD) {
            switch (keyCode) {
                case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
                    moveToNextImage(true);
                    break;
                case KeyEvent.KEYCODE_MEDIA_REWIND:
                    moveToPreviousImage(true);
                    break;
                case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
                    playPauseController();
                    break;
                default:
                    break;
            }
        }
        return super.onKeyDown(keyCode, event);
4

1 回答 1

0

找到了!为了防止其他应用程序在我的应用程序处于活动状态时接收远程输入,请添加处理的布尔值。其他选择是获得音频焦点,但由于我没有使用音频,所以不需要它。

public boolean onKeyDown(int keyCode, KeyEvent event) {
        boolean handled = false;
        if ((event.getSource() & InputDevice.SOURCE_DPAD) == InputDevice.SOURCE_DPAD) {
            switch (keyCode) {
                case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
                    moveToNextImage(true);
                    handled = true;
                    break;
                case KeyEvent.KEYCODE_MEDIA_REWIND:
                    moveToPreviousImage(true);
                    handled = true;
                    break;
                case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
                    playPauseController();
                    handled = true;
                    break;
                default:
                    break;
            }
        }
        return handled || super.onKeyDown(keyCode, event);
于 2021-09-28T07:30:51.847 回答