Android 安卓:如何触发长按电源菜单(关机/重启等)

Android 安卓:如何触发长按电源菜单(关机/重启等),android,Android,我想知道是否有办法触发电源菜单,就像用户长时间按下电源按钮一样。我可以是root/a系统应用程序,因此正常的安全限制可能不适用 我想做的是防止屏幕在按下电源时休眠,但保持长按电源菜单。我能够进入PREVENT\u POWER\u KEY权限,这允许您捕获键事件KEYCODE\u POWER,但也完全禁用了正常的电源按钮行为。这就引出了最初的问题:如何手动触发android电源菜单 我能够在android源代码中找到这一点:globalaactions.java。如果我读的东西是正确的,那么这段代

我想知道是否有办法触发电源菜单,就像用户长时间按下电源按钮一样。我可以是root/a系统应用程序,因此正常的安全限制可能不适用

我想做的是防止屏幕在按下电源时休眠,但保持长按电源菜单。我能够进入
PREVENT\u POWER\u KEY
权限,这允许您捕获键事件
KEYCODE\u POWER
,但也完全禁用了正常的电源按钮行为。这就引出了最初的问题:如何手动触发android电源菜单

我能够在android源代码中找到这一点:
globalaactions.java
。如果我读的东西是正确的,那么这段代码似乎以编程方式创建了一个
GlobalActionsDialog
。这个类不是公共的。我的假设是我运气不好,但只是检查一下是否有人知道解决方法

为了缩短不可避免的“你不想那样做”答案,这是一个定制设备+ROM


谢谢。

我刚刚看了一下平台源代码。恐怕不可能。长按电源键由WindowManager服务处理,该服务由输入服务直接提供输入。我甚至尝试了一种厚颜无耻的方式,使用反射来获得活页夹,但没有运气。你只是无法得到你需要的,并付诸行动。即使像Commonware建议的那样伪造输入也不在混合范围内,因为注入的是高于此级别的。

如果您有root用户,请确定电源按钮(例如按键)是否有一致的硬件事件,然后root用户应该有办法模拟长按该键。特别是对于您自己的硬件,在您不知情的情况下更改硬件事件的风险应该很小,检查这个,了解我正在努力实现的一些更新。