3

我想知道如何检测"BACK Button"设备上的硬或软?我搜索过,但大多数时候我发现了这段代码

   @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

但我只需要检测设备上是否存在 BACK 按钮,或者是否以硬或软的形式存在。

4

3 回答 3

10

我认为这应该有效

查询框架关于连接到设备的任何键盘上是否存在任何能够生成给定键码的物理键。

boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);

安卓开发者文档

于 2014-06-23T07:04:42.530 回答
0

最好的方法是覆盖 onBackPress(),因为无论你想要实现 onBackpress 按键事件的功能,你也可以在 onBackPress() 方法中做到这一点。

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
   // do your stuff  here
    super.onBackPressed();
}
于 2014-06-23T06:50:12.823 回答
-2

您可以通过覆盖方法来做到这一点

   @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
    }
于 2014-06-23T05:13:04.210 回答