试过几个方案,只有这个好用。
public static Context context;
/**
* 唤醒手机屏幕并解锁
*/
public static void wakeUpAndUnlock() {
// 获取电源管理器对象
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
boolean screenOn = pm.isInteractive();
if (!screenOn) {
// ScreenOn是LogCat里用的Tag
PowerManager.WakeLock wl = pm.newWakeLock(
PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "ScreenOn");
wl.acquire(1000); // 点亮屏幕
wl.release(); // 释放
}
// 屏幕解锁
KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("unLock");
// 屏幕锁定
keyguardLock.reenableKeyguard();
keyguardLock.disableKeyguard(); // 解锁
}
在onCreate()中加入:
context = this;
网友评论