无法在 android 中使用 PowerManager 的 goToSleep APi

Posted

技术标签:

【中文标题】无法在 android 中使用 PowerManager 的 goToSleep APi【英文标题】:Cant use PowerManager's goToSleep APi in android 【发布时间】:2011-09-09 03:36:53 【问题描述】:

您好,我正在制作一个应用程序,我需要调用手机进入屏幕保护模式,因为我得到一个触发器...... 我环顾四周,发现 PowerManager.java 确实提供了这样的 API “goToSleep

API description here.

我现在的问题是我需要一个特殊的权限才能完成这项工作

android.Manifest.permission.DEVICE_POWER”这个权限是 2 级权限,只是在清单中声明它并没有为我提供权限 所以现在我必须在系统线程中运行该应用程序(如果我这样做,已经验证它是否有效)才能成功获得此权限

任何人都可以向我提供任何提示或任何其他方式,以便我可以在不root我的应用程序的情况下使其工作(是否有其他方式来触发相同的行为

【问题讨论】:

我的手机去洗澡了(不要问),所以我想开发一个软关闭按钮,所以是的,如果可以的话会很好。很想赏金。 这个 api 实际上并没有“关闭”你的手机,它只是移动到屏幕关闭状态 Cpu 继续运行它只会关闭显示器。 这实际上是我想要的。无需关闭电源,只需切换屏幕,这样它就不会消耗我的电池。 使用系统共享 uid 在系统进程中运行应用程序似乎是唯一的出路。 (根应用程序)如果节省电池是导致此问题的原因....将显示时间设置为非常短的时间>>>除非有人知道我们如何在没有根的情况下做到这一点。 【参考方案1】:

在一定的亮度值下,屏幕会熄灭,所以这应该可以工作:

WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; lp.screenBrightness = 0; getWindow().setAttributes(lp);

【讨论】:

以上是关于无法在 android 中使用 PowerManager 的 goToSleep APi的主要内容,如果未能解决你的问题,请参考以下文章

无法在带有 Kotlin 的 Android 中使用 Autodispose

无法使用 setsmallIcon 在 android studio 中更改图标

无法在 Android 中播放使用 AudioRecord 录制的 pcm 文件

地理围栏在 Android 中完全无法使用吗?

无法在 Android 中使用 AudioRecord 进行录制

无法使用 Parse 在 Android 中接收推送通知