//权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
@SuppressLint("InvalidWakeLockTag")
private void wakeUp() {
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
Log.d(TAG, "wjz debug wakeUp: screen is on ? == " + powerManager.isInteractive());
if (!powerManager.isInteractive()) {
//屏锁管理器
// KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
// KeyguardManager.KeyguardLock kl = km.newKeyguardLock("unLock");
// //解锁
// kl.disableKeyguard();
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "cyg_wake");
//点亮屏幕
wakeLock.acquire(1000L);
//释放
wakeLock.release();
}
}
另一种唤醒方法:模拟输入power键
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
Log.d(TAG, "wjz debug screen is on ? == " + powerManager.isInteractive());
if (!powerManager.isInteractive()) {
mThreadPool.execute(new Runnable() {
@Override
public void run() {
try {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(KEYCODE_POWER);
Log.d(TAG, "wjz debug openCamera: 唤醒屏幕!!!!!!!!!!!!!!!!!!!!!!!!");
} catch (Exception e) {
e.printStackTrace();
}
}
});
}