Android - 激活系统键锁(又名锁屏)
Posted
技术标签:
【中文标题】Android - 激活系统键锁(又名锁屏)【英文标题】:Android - Activation of the system key lock (aka lock screen) 【发布时间】:2010-10-18 12:53:05 【问题描述】:我必须激活 android 的系统键锁(当你按下 power off/hang up 按钮时得到的那个)。见这里:
我已经浏览了文档,但我找到的所有内容都是 PowerManager 和 KeyguardManager。两者似乎都不是解决方案:-(。
那么,每个人都知道如何通过 android 应用程序实现这一点吗? (如果需要特殊权限,那没问题,但更改设备的设置不是解决方案......)
编辑:或者有人知道这绝对不可能吗?顺便提一句。带有发送密钥的 craigs 解决方案不再起作用(请参阅 cmets)。
【问题讨论】:
您也可以尝试使用 IRC (freenode #android) 并与首席开发人员本人交谈 【参考方案1】:这里有一个很好的例子:
http://www.anddev.org/throwing-simulating_keystrokes_programatically-t717.html
看起来您可以通过编程方式将任何击键发送到系统。听起来您要查找的键码是 KEYCODE_ENDCALL,但如果这不起作用,这里还有很多其他代码可以尝试:
http://developer.android.com/reference/android/view/KeyEvent.html
我不知道是否有任何 API 调用导致发生锁定,但这似乎是一个非常可靠的解决方法,直到您找到更好的解决方案。
【讨论】:
此方法不再可用,出于安全考虑已将其删除。 哎呀,你知道其他解决方案吗? 嗯,Android 1.0/即将推出的 1.5 是目标平台,所以这行不通:-(【参考方案2】:通过 Android 源代码挖掘发现 WindowManagerService 似乎有一个公共方法 (startAppFreezingScreenLocked
) 来激活它。这可能是开始寻找答案的好地方,因为不幸的是,您似乎无法直接获取 WindowManagerService 对象。
【讨论】:
【参考方案3】:您正在寻找的是我的朋友 KeyguardManager.KeyguardLock 中的 reenableKeyguard() 方法!
【讨论】:
你试过了吗?上面看到的锁屏真的出现了吗?我试过了,它确实锁定了键盘,但它不是系统键锁...... 啊,这里可能误解了你的问题。这是关于显示屏幕本身还是激活系统键锁? sthg,两者都有:-)。我只想激活正常的系统键锁。屏幕本身就是该键锁的一部分。如果用户激活了代码(或解锁模式),他应该被询问该代码/模式。仅仅锁定键盘是不够的:-(【参考方案4】:看起来锁屏功能是使用方法来执行的:
public void goToSleep(long time)
PowerManager.java
中的方法。可以通过这种方式获得对它的引用:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
不过这需要权限
android.permission.DEVICE_POWER
这是仅对系统可用的 2 级权限。
所以看起来这是不可行的。这仅适用于 1.1 版本,我不知道是否适用于 1.5。
【讨论】:
嗯,这很糟糕。事实上,我认为这还不够,因为我真的需要系统键锁,正如你在上面的屏幕截图中看到的那样。 PowerManager 的文档中没有提到该屏幕...它只是说设备将进入睡眠状态,而不是系统键锁被激活。 不确定它是否会有所帮助,因为它是版本 在 LockPatternKeyguardView 中有一个 ScreenLock 调用,方式如下: View createLockScreen() return new LockScreen( mContext, mLockPatternUtils, mUpdateMonitor, mKeyguardScreenCallback); 另外,看看这个线程。似乎确认这是不可能的:groups.google.com/group/android-platform/browse_thread/thread/…【参考方案5】:一段时间以来,我一直在寻找完全相同的问题的答案。显然,在 2.0 之后,应用程序级别的设备管理器权限被删除了。但在 Froyo - 2.2 中,设备策略管理器被揭示为我们的开发人员提供了大量的管理级别控制。
http://developer.android.com/guide/topics/admin/device-admin.html
【讨论】:
以上是关于Android - 激活系统键锁(又名锁屏)的主要内容,如果未能解决你的问题,请参考以下文章