-1

Hi I am looking for disabling the Only HomeKey In Android. WHat i am trying to do is

@Override
    public void onAttachedToWindow() {
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow();
    }
@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {



        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {

            return true;
        }

        if (event.getKeyCode() == KeyEvent.KEYCODE_MENU) {
                        //action
        }
        if (event.getKeyCode() == KeyEvent.KEYCODE_HOME) {
                        //action
        }
        if (event.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER) {
            //action
        }

        return false;
    }

But by this my back button is too getting disabled. Is there any way to just disable the HomeKey in android. Please reply.

4

2 回答 2

1

文档指出:

家里的钥匙。此密钥由框架处理,永远不会传递给应用程序。

更具体地说,密钥由方法中的 PhoneWindowManager 使用interceptKeyBeforeDispatching(..)。在此方法中,密钥被处理和使用,这意味着 Android 不允许覆盖此功能。

更新:

你的背部行为不再起作用的原因是你自己已经处理好了。密钥进入onKeyDown- 方法,您可以通过返回 true 或 false 来使用密钥(是或否)。通过实现这一点:

 if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {

       return true;
 }

您明确声明您已经处理了您的 Back 键,Activity这也意味着“返回”的默认行为被覆盖。要恢复其原始行为,请使用return super.onKeyDown(keyCode, event);

于 2012-11-22T10:43:05.177 回答
0

对的,这是可能的。在你的清单中,在你的活动减速下,替换

<category android:name="android.intent.category.LAUNCHER" />

<category android:name="android.intent.category.HOME" />

请注意,通过此更改,您的应用程序将不会在“所有应用程序”部分中显示。此外,用户需要将您的应用程序设置为默认主屏幕。试试“Toddler Lock”应用程序,它可以很好地处理这种情况。

于 2012-11-22T10:42:58.240 回答