Java 禁用后退、最近的应用程序按钮、电源按钮、主页和主页长按按钮

Java 禁用后退、最近的应用程序按钮、电源按钮、主页和主页长按按钮,java,android,android-studio,Java,Android,Android Studio,在问这个问题之前,我在StackOverflow上尝试了许多与此主题相关的解决方案,但有些解决方案令人困惑,有些解决方案不起作用,这可能是android版本的问题 因此,我问了这个问题,所以请帮助我在活动启动时禁用“后退”、“最近的应用程序”按钮、电源按钮、主页和主页长按按钮 答案应该适用于安卓4.4.x至以上版本 谢谢。您尝试过backpressed()函数吗 @Override public void onBackPressed() { // code h

在问这个问题之前,我在StackOverflow上尝试了许多与此主题相关的解决方案,但有些解决方案令人困惑,有些解决方案不起作用,这可能是android版本的问题

因此,我问了这个问题,所以请帮助我在活动启动时禁用“后退”、“最近的应用程序”按钮、电源按钮、主页和主页长按按钮

答案应该适用于安卓4.4.x至以上版本


谢谢。

您尝试过backpressed()函数吗

 @Override
    public void onBackPressed()
    {
         // code here to show dialog
         super.onBackPressed();  // optional depending on your needs
    }
当活动检测到用户按下后退键时,将调用
onBackPressed()
函数。 我用它来禁用“活动”上的“后退”按钮

对于其他类似电源按钮按下,您可以尝试下面的代码

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        // do what you want with the power button
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

您需要了解Android KeyEvent。

好吧,你不能。用户应该总是有办法退出任何应用程序,或者关闭他/她的设备,无论他/她在哪里。@Fustigador我同意你的观点,但有些应用程序需要此功能,如
SpinMe闹钟
,使用此功能强迫用户醒来。也许……但如果有办法,将不是一个简单的方法。据我所知,只有后退按钮可以处理。你是如何解决这个问题的,如果你知道了,请更新答案。其他的呢??
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        Intent i = new Intent(this, ActivitySetupMenu.class);
        startActivity(i);
        return true;
    }

    return super.dispatchKeyEvent(event);
}