9820e按键解锁锁屏

在PhoneWindowManager利用enableKeyguard()直接处理解锁和锁屏,快速按时也生效,如果在KeyguardViewManager解锁,夸进程还要模拟发按键,在KeyguardViewManager里面处理,有时快速按按键,还不能解锁。
frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java

public class PhoneWindowManager implements WindowManagerPolicy {
...
	static private boolean Zxkeyguardstatus = true; //zxw add
...

	@Override
    public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn) {
        if (!mSystemBooted) {
            // If we have not yet booted, don't let key events do anything.
            return 0;
        }
		...
		if (keyCode == KeyEvent.KEYCODE_POWER) {
            policyFlags |= WindowManagerPolicy.FLAG_WAKE;
			if(Zxkeyguardstatus == false)
				enableKeyguard(true); //modify by zxw add for lockkeydown,enableKeyguard(false);
        }
		
        ///wangsong set the star/F12  wake power off -s@{
		if (keyCode == KeyEvent.KEYCODE_F12 || keyCode == KeyEvent.KEYCODE_F10) {
            policyFlags |= WindowManagerPolicy.FLAG_WAKE;
        }
		///modify end @}

		//zxw add start
		if((keyCode == KeyEvent.KEYCODE_F11)&&(event.getAction() == KeyEvent.ACTION_DOWN))
	    {
			   Log.d("zxw keycode","lock");
			   if(Zxkeyguardstatus == false) //zxw add
			   		enableKeyguard(true);
			   mPowerManager.goToSleep(SystemClock.uptimeMillis());
		}
		if((keyCode == KeyEvent.KEYCODE_F12)&&(event.getAction() == KeyEvent.ACTION_DOWN))
	    {
			   Log.d("zxw keycode","unlock");
			   //simulateKeystroke(KeyEvent.KEYCODE_F10);
			   //simulateKeystroke(KeyEvent.KEYCODE_F10);
			   enableKeyguard(false); //zxw add
		}
		//zxw add end
		...
	}
	...
	/** {@inheritDoc} */
	public void enableKeyguard(boolean enabled) {
		Zxkeyguardstatus = enabled; //zxw add
		if (mKeyguardDelegate != null) {
		mKeyguardDelegate.setKeyguardEnabled(enabled);
		}
	}
...
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值