我正在捕获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“平板电脑上按钮具有相反的效果?!即音量增大会降低音量值,音量降低会增加它。应用程序已修复在纵向,所以没有方向改变。什么可能导致这种影响?如何在没有实际设备的情况下测试这个?我可以用这种设备的通用(首选)或特定方式解决这个问题吗?
感谢您分享您的想法,
干杯,
约翰
答案 0 :(得分:0)
我怀疑它认为设备的自然方向是纵向,并且不会补偿方向变化(其他一些设备会这样做)。
当您以纵向方向握住设备时,下方按钮是否会发送音量减小?
当您将设备旋转到横向时,相同的按钮是否仍会发送音量减小,即使它直观地应该是音量增大?
我在另一台Acer制造的7英寸平板电脑上注意到了此行为,并将此行为报告为错误(或至少是功能请求)。