我需要做一个关闭手机屏幕并以编程方式进入睡眠状态的应用程序。例如,如果屏幕在没有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。 但我的清单中有这个许可。
有没有其他方法可以做到这一点,而不需要为我的手机生根?
答案 0 :(得分:2)
android.permission.DEVICE_POWER
仅授予系统应用,第三方应用未获得此权限。
如果你没有拿着唤醒锁,如果你减少SCREEN_OFF_TIMEOUT
,那么你应该能够在5分钟后自动进入睡眠状态