我正在创建一个Android应用程序,它具有基于某些条件睡眠设备的功能,并根据其他一些条件唤醒。在API 21之前,powerManager.goToSleep()
中有一个方法PowerManager
,用于执行此操作。但是,现在不再可以访问相同的方法了。还有其他办法吗?
int defaultTurnOffTime = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 60000);
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 1000);
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, defaultTurnOffTime);
上面提到的代码是我到目前为止所得到的。但是,它似乎并不适合我。请建议是否有任何方法可以实现此功能。
答案 0 :(得分:0)
您是否尝试过使用PowerManager.Wakelock?
超时获取唤醒锁定。
确保在创建唤醒锁定时设备处于所请求的级别。锁定将在给定的超时到期后释放。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
..screen will stay on during this section..
wl.release();
有四种类型的标志
Flag Value CPU Screen Keyboard PARTIAL_WAKE_LOCK On* Off Off SCREEN_DIM_WAKE_LOCK On Dim Off SCREEN_BRIGHT_WAKE_LOCK On Bright Off FULL_WAKE_LOCK On Bright Bright