I'm using wake lock to turn on screen.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
//acquiring wake lock
PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
if (mWakeLock == null) {
mWakeLock = pm.newWakeLock((PowerManager.FULL_WAKE_LOCK | PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), TAG);
}
if (!mWakeLock.isHeld()) {
mWakeLock.acquire();
}
//releasing wakelock
Runnable releaseWakelock = new Runnable() {
@Override
public void run() {
Log.d("timeout","timeout!!!");
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
if (mWakeLock != null && mWakeLock.isHeld()) {
mWakeLock.release();
}
}
};
new Handler().postDelayed(releaseWakelock, WAKELOCK_TIMEOUT);
I also added permission to AndroidManifest
When tested, it works normally in my galaxy note2 4.4.2, so I guess my code is at least partially right
However, my galaxy s4 lte-a (4.2.2) works normally when usb connected, but it doesn't when it is not connected via usb cable.
What is the problem?? I found some questions posted by people with similar problems, but none had satisfying answer.
Is it 4.2.2 known bug?? or am I doing something wrong??
Please help if you have any idea
Thanks in advance
No comments:
Post a Comment