【问题标题】:Disable the back,recent apps button , power button, home and home long press button禁用返回,最近的应用程序按钮,电源按钮,主页和主页长按按钮
【发布时间】:2017-04-25 09:04:15
【问题描述】:

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

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

答案应该适用于android 4.4.x 到以上版本。

谢谢。

【问题讨论】:

  • AFAIK,你不能。用户应该始终有办法退出任何应用程序,或者无论他/她身在何处都可以关闭他/她的设备。
  • @Fustigador 我同意你的观点,但有些应用需要此功能,例如 SpinMe alarm clock,它们使用此功能强制用户醒来。
  • 也许……但如果有办法,那将不是一件容易的事。
  • 据我所知,只能处理后退按钮。
  • 你是怎么解决这个问题的,如果你知道了,请更新答案。

标签: java android android-studio


【解决方案1】:

你试过 onBackPressed() 函数吗?

 @Override
    public void onBackPressed()
    {
         // code here to show dialog
         super.onBackPressed();  // optional depending on your needs
    }

onBackPressed() 函数在 Activity 检测到用户按下返回键时被调用。 developer.android.com 我正在使用它来禁用 Activity 上的后按按钮。

对于其他像电源按钮按下,你可以试试下面的代码。

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);
}

或

@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);
}

你需要找出Android KeyEvent。 KeyEvent.html

【讨论】:

  • 其他人呢??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 2011-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多