【问题标题】:Set Screen off on click home button单击主页按钮时设置屏幕关闭
【发布时间】:2014-01-15 10:41:44
【问题描述】:

我想在按下 HOME_BUTTON 时关闭屏幕。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_HOME) {
        System.out.println("home button");
        finish();
                WindowManager.LayoutParams params = getWindow().getAttributes();
                params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
                params.screenBrightness = 0;
                getWindow().setAttributes(params);

        return true;
    }

    return super.onKeyDown(keyCode, event);
}

谁能帮帮我 谢谢

【问题讨论】:

  • 那么,除了获取 home 键之外,您还尝试过什么?
  • @khouloudmejdoub 您应该将该代码添加到您的问题中,而不是作为不可读的评论...

标签: android screen


【解决方案1】:

终于解决了

@Override
protected void onResume() {
    super.onResume();
    if (PreferenceHelper.getScreenLock(Recognition.this)) {
        wakeLock.acquire();
    }
    WindowManager.LayoutParams params = getWindow().getAttributes();
    params.screenBrightness = 1;
    getWindow().setAttributes(params);

}

@Override
protected void onPause() {
    super.onPause();
    if (PreferenceHelper.getScreenLock(Recognition.this)) {
        wakeLock.release();
    }
    WindowManager.LayoutParams params = getWindow().getAttributes();
    params.screenBrightness = 0;
    getWindow().setAttributes(params);

}

【讨论】:

    【解决方案2】:

    public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_HOME) {
        System.out.println("home button");
        DevicePolicyManager mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
        mDPM.lockNow();
        return true;
    }
    return super.onKeyDown(keyCode, event);
    

    }

    这将在按下主页按钮时锁定您的屏幕。

    【讨论】:

    • 当我添加此代码时出现此错误:原因:java.lang.SecurityException:没有活动管理员拥有 uid 10004 策略 #3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    相关资源
    最近更新 更多