0

我正在捕获 VOLUME_UP 和 VOLUME_DOWN 键以分别增加减少我的应用程序中的值。我使用以下代码:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();
    switch (keyCode) {
    case KeyEvent.KEYCODE_VOLUME_UP:
        if (action == KeyEvent.ACTION_UP) {
            // Do something to increase a value
        }
        return true;
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        if (action == KeyEvent.ACTION_DOWN) {
            // Do something to decrease a value
        }
        return true;
    default:
        return super.dispatchKeyEvent(event);
    }
}

这在大多数设备上都可以正常工作,但是,我们的一位用户报告说,在 Acer Iconia 7" 平板电脑上,按钮有相反的效果?!即音量增大会减小值,而音量减小会增大它。应用程序固定为纵向,所以没有方向变化。什么可能导致这种效果?我如何在没有实际设备的情况下进行测试?我可以为此设备以通用(首选)或特定方式解决这个问题吗?

感谢您分享您的想法,

干杯,

约翰

4

1 回答 1

0

我怀疑它认为设备的自然方向是纵向的,并且不补偿方向变化(其他一些设备会这样做)。

当您以纵向握持设备时,下方的按钮是否会降低音量?

当您将设备旋转到横向时,同一个按钮是否仍然会降低音量,即使直观上它应该是提高音量?

我在另一台 Acer 制造的 7 英寸平板电脑上注意到了这种行为,并将所述行为报告为错误(或至少是功能请求)。

于 2012-07-11T11:42:55.873 回答