电源按钮按下 - 保持屏幕开启

时间:2011-07-31 05:38:04

标签: android android-intent screen

在我的应用程序中,我需要在活动中捕获Power Button Press,然后显示另一个活动。我已经设法抓住电源按钮并在按下时显示新活动。 我使用BroadcastReceiver来挂钩电源新闻事件。我在我的Activity中添加了以下标志,以防止在按下电源按钮时屏幕被锁定:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);//prevent phone from being locked    
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //I am not sure it works.    
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);//turns the screen on

虽然我可以抓住电源按下并显示活动而不会被锁定,但屏幕会关闭约1秒钟并再次自动打开,这不是我真正想要的。 无论如何,当用户按下电源按钮时,我可以保持屏幕开启吗?

我无法通过dispatchkeyevent捕捉到力量,但我能抓住它:

screenoff = new BroadcastReceiver()
public static final String Screenoff = "android.intent.action.SCREEN_OFF";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (!intent.getAction().equals(Screenoff)) {
            //code goes here return;

        return;
        }
    };
    IntentFilter offfilter = new IntentFilter (Intent.ACTION_SCREEN_OFF);
    registerReceiver(screenoff, offfilter);
问题是屏幕关闭大约1秒钟。 为什么会发生这种情况以及如何解决这个问题?

谢谢, 侯赛因

1 个答案:

答案 0 :(得分:0)

你应该使用

boolean     dispatchKeyEvent(KeyEvent event)
Called to process key events.

在Activity类中捕获关键事件。

不确定它是否捕获了电源按钮。