From e296c0ebd855c323b0a0df953aba8cf5c627f400 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Fri, 29 Dec 2017 14:50:38 +0800 Subject: [PATCH] api: device.isScreenOn(), device.wakeUpIfNeeded() --- .../stardust/autojs/runtime/api/Device.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Device.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Device.java index 6830d1c0..9c5599d5 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Device.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Device.java @@ -16,6 +16,8 @@ import android.provider.Settings; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.telephony.TelephonyManager; +import android.view.Display; +import android.view.WindowManager; import com.stardust.autojs.R; import com.stardust.autojs.runtime.exception.ScriptException; @@ -219,6 +221,22 @@ public class Device { mWakeLock.acquire(); } + public boolean isScreenOn() { + //按照API文档来说不应该使用PowerManager.isScreenOn(),但是,isScreenOn()和实际不一致的情况通常只会出现在安卓智能手表的类似设备上 + //因此这里仍然使用PowerManager.isScreenOn() + // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { + // return ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getState() == Display.STATE_ON; + //} else { + return ((PowerManager) getSystemService(Context.POWER_SERVICE)).isScreenOn(); + //} + } + + public void wakeUpIfNeeded() { + if (!isScreenOn()) { + wakeUp(); + } + } + public void wakeUp() { keepScreenOn(200); }