如何让移动设备以编程方式进入睡眠状态



我需要做一个关闭手机屏幕并以编程方式进入睡眠状态的应用程序。例如,如果屏幕在没有user_present的情况下打开超过 5 分钟,我应该将其关闭。我尝试使用PowerManager(goToSleep()函数应该完全按照我想要的去做,但它似乎不起作用):

PowerManager pm = (PowerManager) m_context.getSystemService(Context.POWER_SERVICE);

  if (pm.isScreenOn() )
   {
    pm.goToSleep(System.currentTimeMillis() + 1000
   }

我的清单中具有以下权限:

<uses-permission android:name="android.permission.DEVICE_POWER"/>

它抛出一个异常:java.lang.SecurityException:用户 10068 和当前进程都没有android.permission.DEVICE_POWER。但我的清单中有此权限。

有没有另一种方法可以做到这一点,而无需生根我的手机?

android.permission.DEVICE_POWER仅授予系统应用程序,第三方应用程序不会获得此权限。

如果您没有保持唤醒锁并且如果您减少SCREEN_OFF_TIMEOUT,那么您应该能够在 5 分钟后自动入睡

最新更新