Raghu Mudem
Raghu Mudem

Reputation: 6973

How to disable all hardware keys programmatically in Android?

I am developing Android application with lock functionality. please suggest me how to disable all the hard keys programmatically. here I am using below code to disable back button. I want like this functionality for all hard keys like home,search,camera, shortcut keys here is my code:

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

Upvotes: 1

Views: 9852

Answers (3)

baonq-2356
baonq-2356

Reputation: 61

Override onKeyDown and onKeyUp func, return them true, it means you handle press action yourself. In onKeyUp, you can implement more logic for each key press action if you want.

Upvotes: 0

Ramesh Reddy
Ramesh Reddy

Reputation: 59

Try with this, it may solve your problem:

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

Upvotes: -1

Kiran Kumar
Kiran Kumar

Reputation: 1212

Modify your onKey method to this :

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

When you return true from onKey method, it means that you have handled the key press yourself and prevents the OS from taking the default action. In you code, you are only handling the search button, but when you return true for all cases, it will block all buttons.

P.S this might not work for soft buttons. Refer this

Upvotes: 0

Related Questions