Android如何在按下主页按钮时重新启用Keyguard?

时间:2011-11-22 19:08:06

标签: android

有几天我试图找到这个问题的解决方案,谷歌和这个网站上已经有很多帖子,而且从这一切看起来似乎无法覆盖主页按钮。

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

对于某些情况,这是行不通的。

无论如何我在某处读到有一种解决方法可以让你在按下HOME按钮时触发某些东西,部分似乎有效。

protected void onUserLeaveHint() {
     super.onUserLeaveHint();
     Log.i("LOG", "onUserLeaveHint");
}

但我想要做的是reenableKeyguard(我知道要首先启用锁定屏幕必须禁用它)在该方法内部,但由于某些原因它不会启用。所以这是我的代码。

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_lock); 
    }

    public void onStart() {
        super.onStart();
        Globals.km = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
        Globals.kl = Globals.km.newKeyguardLock("My_App");
        Globals.kl.disableKeyguard();
        Log.i("LOG", "OnStart");
    }

    public void onResume() {
        super.onResume();
        Log.i("LOG", "OnResume");
    }

    protected void onUserLeaveHint() {
        super.onUserLeaveHint();
        Log.i("LOG", "onUserLeaveHint");
        Globals.kl.reenableKeyguard();
    }

    public void onPause() {
        super.onPause();
        Log.i("LOG", "OnPause");
    }

    protected void onStop() {
        super.onStop();
        Log.i("LOG", "OnStop");
    }

Reenable仅在活动开始时起作用,因此如果我将其放在onPause()中,则会出现锁定屏幕。但是,当我按回家时,它不起作用。

有谁能告诉我我做错了什么?感谢名单。

0 个答案:

没有答案
相关问题