有一种方法可以在一段时间后锁定Android屏幕吗?

时间:2015-12-12 19:35:03

标签: android wakelock

我的应用程序使用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

    }
}

1 个答案:

答案 0 :(得分:1)

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

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