我需要激活Android系统的系统键盘锁(当你按下关机/挂断按钮时出现的那个)。请看这里:
我已经浏览了文档,但是我找到的所有内容都与PowerManager和KeyguardManager无关。两者似乎都不是解决方案 :-(。
那么,有谁知道如何从Android应用程序实现此功能吗?(如果需要特殊权限,那就没有问题,但更改设备设置不是解决方案...)
编辑:还是有人知道这根本不可能吗?顺便说一句,克雷格的解决方案发送密钥不再起作用(请参见评论)。
我需要激活Android系统的系统键盘锁(当你按下关机/挂断按钮时出现的那个)。请看这里:
我已经浏览了文档,但是我找到的所有内容都与PowerManager和KeyguardManager无关。两者似乎都不是解决方案 :-(。
那么,有谁知道如何从Android应用程序实现此功能吗?(如果需要特殊权限,那就没有问题,但更改设备设置不是解决方案...)
编辑:还是有人知道这根本不可能吗?顺便说一句,克雷格的解决方案发送密钥不再起作用(请参见评论)。
看起来屏幕锁定功能是使用以下方法执行的:
public void goToSleep(long time)
PowerManager.java
中的方法。可以通过以下方式获取对它的引用:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
然而这需要权限
android.permission.DEVICE_POWER
这是仅系统可用的二级权限。
看起来似乎无法实现。这仅适用于1.1版本,我不知道1.5版本是否适用。
这里有一个相当不错的例子:
http://www.anddev.org/throwing-simulating_keystrokes_programatically-t717.html
看起来你可以通过编程的方式向系统发送任何按键。如果你正在寻找的按键码是KEYCODE_ENDCALL,那么这听起来就像是你需要的,但如果它不起作用,这里还有很多其他的代码可以尝试:
http://developer.android.com/reference/android/view/KeyEvent.html
我不知道是否有任何API调用可以导致锁定发生,但在找到更好的解决方案之前,这似乎是一个相当稳健的解决方法。
startAppFreezingScreenLocked
),可以用于激活此功能。这可能是寻找答案的好地方,因为不幸的是,您似乎不能直接获取WindowManagerService对象。