有没有办法在一段时间后锁定 Android 屏幕?

Is there a way to lock Android screen after a certain period of time?

我的应用程序使用唤醒锁,它会在收到短信时自动打开屏幕。我已经设置了持续时间,以便它几乎立即释放 WakeLock,但似乎在设置中,屏幕在不活动后关闭的最短时间为 15 秒。我正在寻找屏幕在较短的时间内关闭 - 比如 5 秒 - 以节省电池。

我到处看了看,好像有人提到了一些关于DevicePolicyManager的事情。我试图在清单中包含该权限,但它说它只能由系统应用程序使用。这是否意味着它必须扎根?还有其他解决方法吗?

这是我的代码:

public static void wakeScreen(Context context) {
    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);

    boolean isScreenOn = false;
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT_WATCH) {
        isScreenOn = pm.isInteractive();
    }

    else {
        isScreenOn = pm.isScreenOn();
    }

    if (isScreenOn == false) {
        PowerManager.WakeLock w1 = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
                |PowerManager.ACQUIRE_CAUSES_WAKEUP
                ,"MyLock");

        w1.acquire(100); //releases the lock almost instantaneously, but still limited by screen timeout in Android settings

    }
}

没关系,找到了一个简单的解决方案。只需手动设置超时。

Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 1000)