如何让手机以编程方式进入睡眠状态

时间:2012-11-29 14:15:11

标签: java android standby powermanager

我需要做一个关闭手机屏幕并以编程方式进入睡眠状态的应用程序。例如,如果屏幕在没有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。 但我的清单中有这个许可。

有没有其他方法可以做到这一点,而不需要为我的手机生根?

1 个答案:

答案 0 :(得分:2)

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

如果你没有拿着唤醒锁,如果你减少SCREEN_OFF_TIMEOUT,那么你应该能够在5分钟后自动进入睡眠状态