如何在特定时间睡眠我的Android设备并以其他方式以编程方式唤醒?

时间:2018-05-02 07:05:20

标签: java android android-studio

我正在创建一个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);

上面提到的代码是我到目前为止所得到的。但是,它似乎并不适合我。请建议是否有任何方法可以实现此功能。

1 个答案:

答案 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
相关问题