这里注意度过单纯判断是否在桌面launcher从而决定是否执行power的话,那么如果进到一个apk,然后自然灭屏休眠的话,再点击power键得点两次才能正常亮,因为第一次先返回桌面了,虽然这一步操作是灭屏完成的看不到。
加了判断后还有一个问题就是如果亮屏了但不在launcher界面,那再点一下就不会息屏,所以还得加个判断让它这个情况灭屏去。
if(getCurrentActivityName(mContext).equals("com.android.launcher3.Launcher")) {
if (down) {
interceptPowerKeyDown(event, interactive);
} else {
interceptPowerKeyUp(event, interactive, canceled);
}
}else{
if (down) {
//*/tyd.yantao 20220930 fix natural screenOff when not In launcher that click 2 power to screenOn
PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK,"bright");
boolean isScreenOn = pm.isScreenOn();
if(!isScreenOn){
wl.acquire();
wl.release();
}else{
boolean islocked = mKeyguardManager.isKeyguardLocked();
if(isScreenOn && islocked ){
goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON, 0);
//*/
}else{
Intent intent=new Intent();
intent.setClassName("com.android.launcher3","com.android.launcher3.Launcher");
mContext.startActivity(intent);
}
}
}
}
}