在Android上编程实现屏幕锁定

4

我需要在我的应用程序中通过编程方式锁定屏幕。

我使用了以下代码:

String service = Activity.KEYGUARD_SERVICE;
KeyguardManager mgr = (KeyguardManager)getSystemService(service);
KeyguardLock lock = mgr.newKeyguardLock(KEYGUARD_SERVICE);
lock.reenableKeyguard();

我在AndroidManifest中设置了以下权限。

 <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

然而,它没有给我任何结果,甚至没有给我任何错误或异常。
我错过了什么?
1个回答

5
如果您的最低支持操作系统是2.2,则可以使用DevicePolicyManager lockNow()方法。
如果您想了解有关DevicePolicyManager接口的更多信息,请尝试查看ApiDemos示例代码中的DeviceAdminSample。Android SDK附带所有示例,因此您可以轻松将ApiDemos添加为Eclipse项目并在模拟器中运行它。
如果您需要支持旧的操作系统版本,请参阅我在这里提出的问题:
Using OS 2.2 DevicePolicyManager SDK classes on Android whilst supporting OS 2.1 devices

我已经了解到,使用DevicePolicyManager需要将应用程序添加为管理员(在第一次使用时手动请求用户),但是然后该应用程序无法卸载,直到它从管理员列表中删除!这是正确的吗?如果是这样,我真的不喜欢这样的解决方案,因为它会让很多用户感到生气。 - 3c71

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接