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



我的应用程序使用WakeLock,当它收到短信时,它会自动打开屏幕。我设置了持续时间,使它几乎立即释放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)

最新更新