【问题标题】:How to detect Hard/Soft back button on Android device?如何检测 Android 设备上的硬/软后退按钮?
【发布时间】:2014-08-13 01:31:37
【问题描述】:

我想知道如何在设备上检测硬或软"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 按钮,是否存在硬或软形式。

【问题讨论】:

标签: android back-button back-button-control


【解决方案1】:

我认为这应该可行

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

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

Android developer documentation

【讨论】:

  • 很好的答案,但可以知道后退按钮的位置(如果在右侧或左侧)?我想用箭头突出显示它。如果是软件可能是版本检查,但如果是物理我真的不知道
  • 如果设备使用的 rom 启用了软件密钥,即使他们获得了硬件密钥,该怎么办?例如CM、LOS、OxygenOS等
【解决方案2】:

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

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
   // do your stuff  here
    super.onBackPressed();
}

【讨论】:

    【解决方案3】:

    你可以通过重写方法来做到这一点

       @Override
        public void onBackPressed() {
            // TODO Auto-generated method stub
            super.onBackPressed();
        }
    

    【讨论】:

    • 我想检测设备上的返回按钮而不是单击返回按钮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2019-05-14
    • 1970-01-01
    相关资源
    最近更新 更多