如何在android中以编程方式禁用所有硬件键?

时间:2012-12-01 10:37:30

标签: android android-hardware

我正在开发具有锁定功能的android应用程序。请建议我如何以编程方式禁用所有硬键。在这里我使用beleow代码禁用后退按钮。我希望所有硬键如家,搜索,相机,快捷键的功能 这是我的代码:

  @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_SEARCH) {
                Log.d("KeyPress", "search");
                return true;
            }
            return false;
        }

提前致谢。

2 个答案:

答案 0 :(得分:-1)

将onKey方法修改为:

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    return true;
}

当您从onKey方法返回true时,表示您已经自己处理了按键并阻止操作系统采取默认操作。 在您的代码中,您只处理搜索按钮,但是当您为所有情况返回true时,它将阻止所有按钮。

P.S这可能不适用于软按钮。请参阅this

答案 1 :(得分:-1)

试试这个,它可以解决你的问题:

@Override

    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if ((keyCode == KeyEvent.KEYCODE_HOME)) {
            System.out.println("KEYCODE_HOME");
            return true;
        }
        if ((keyCode == KeyEvent.KEYCODE_BACK)) {
            System.out.println("KEYCODE_BACK");
            return true;
        }
        if ((keyCode == KeyEvent.KEYCODE_MENU)) {
            System.out.println("KEYCODE_MENU");
            return true;
        }
        return false;
    }