1

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

我想要做的是防止屏幕在按下电源时进入睡眠状态,但保持长按电源菜单。我能够保留PREVENT_POWER_KEY权限,这可以让您捕捉到关键事件KEYCODE_POWER,但也完全禁用了正常的电源按钮行为。这让我想到了最初的问题:如何手动触发 Android 电源菜单。

我能够在 Android 源代码中找到这一点:GlobalActions.java. 如果我没看错,看起来这段代码以编程方式创建了一个GlobalActionsDialog. 这个类是不公开的。我的假设是我运气不好,但只是检查是否有人知道解决方法。

我很感激人们通常不想这样做,但它适用于自定义设备 + ROM。

4

1 回答 1

0

我只是看了一下平台源代码。恐怕这是不可能的。电源键的长按由 WindowManagerService 处理,WindowManagerService 由 Input Service 直接给出输入。我什至尝试了一种厚颜无耻的方法来使用反射来获得活页夹,但没有运气。你只是无法达到你需要的,并采取行动。甚至像 Commonsware 所建议的伪造输入也不在其中,因为它是在这个水平之上注入的。

于 2013-06-18T18:24:04.520 回答