6

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

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

4

1 回答 1

3

android.permission.DEVICE_POWER仅授予系统应用程序,第三方应用程序没有此权限。

如果你没有持有wakelock并且如果你减少SCREEN_OFF_TIMEOUT了,那么你应该能够在5分钟后实现自动睡眠

于 2012-11-29T14:47:21.967 回答