我的应用程序使用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
}
}
答案 0 :(得分:1)
没关系,找到了一个简单的解决方案。只需手动设置超时。
Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 1000)