我想了解是否有办法触发电源菜单,就像用户长按电源按钮一样。我可以是root /系统应用程序,因此可能不适用正常的安全限制。
我要做的是在按下电源时防止屏幕睡眠,但保持长按电源菜单。我能够保持PREVENT_POWER_KEY
权限,这允许您捕获关键事件KEYCODE_POWER
,但也完全禁用正常的电源按钮行为。这引出了我原来的问题:如何手动触发Android电源菜单。
我能够在android源代码中跟踪这个:GlobalActions.java
。如果我正确地阅读了这些内容,看起来这段代码会以编程方式创建GlobalActionsDialog
。这堂课不公开。我的假设是,我运气不好,但只是检查是否有人知道解决方法。
短路不可避免的“你不想那样做”的答案,这是针对自定义设备+ ROM。
感谢。
答案 0 :(得分:0)
我刚刚看了一下平台源代码。我担心这是不可能的。长按电源键是由WindowManagerService处理的,由输入服务直接给出输入。我甚至尝试过一种厚颜无耻的方式来使用反射来获得Binder但没有运气。你无法达到你所需要的,并采取行动。即使像Commonsware建议的伪装输入也不合适,因为它被注入了这个级别以上。