45

我写了一个远程锁定安卓手机的应用程序。也就是说,当从服务器发送特殊代码时,应用程序会根据特殊代码锁定手机。这是我正在使用的代码。

if (!mDPM.isAdminActive(mDeviceAdminSample)) {
        // try to become active – must happen here in this activity, to get result
        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mDeviceAdminSample);
        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"Admin is added to do security operation.");
        startActivityForResult(intent, 0);
        } else {
        // Already is a device administrator, can do security operations now.
        mDPM.lockNow();
        }

上面的代码正在工作,它正在锁定手机。

我可以通过从软键盘输入密码来解锁手机。有没有办法通过密码解锁?

我的问题是如何通过代码解锁手机。(此解锁应按照我解释的锁定方式远程完成)

4

8 回答 8

6

我相信你不能覆盖内置的屏幕锁定,除非你像三星和 HTC 那样制作自己的设备。但是,通过让您的客户使用您自己的类似屏幕锁定的应用程序,您可能可以实现您想要做的事情。

于 2012-12-13T23:51:31.293 回答
5

我认为您的远程解锁目标无法实现。

Android 的设置方式是,许多应用程序可能具有设备管理员权限,任何设备管理员都可以发出锁定命令,但解锁必须来自用户。

我可以建议您简化这一点:您的应用程序可以尝试删除键锁定密码,然后用户只需在屏幕上滑动手指即可在没有密码的情况下使用设备。

如果您的应用程序不是唯一的设备管理员,那么我的建议有一个问题。在这种情况下,其他一些管理员应用程序可以设置最小密码长度(或其他一些密码限制),这将阻止您的应用程序清除屏幕锁定密码。

如果您的目标是帮助忘记锁屏密码的用户,那么您的服务器可以发明一个新密码,通知用户新密码是什么,并将新密码发送到您的应用,您的应用可以应用密码。然后用户可以解锁手机。别担心,它并不像听起来那么复杂。

于 2012-12-10T04:40:43.683 回答
4

很抱歉这么写 - 无法通过代码解锁手机。如果您找到任何方法来做到这一点 - 不保证工作。所以没有办法远程解锁、编写自定义锁屏等。

于 2012-12-12T21:29:10.977 回答
3

您需要使用 mDPM.resetPassword("", 0)

http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#resetPassword(java.lang.String , int)

当设置密码字符串为“”时,当前密码被替换为空值,屏幕锁定消失。

于 2013-06-04T09:29:16.413 回答
2

尝试这个

KeyguardManager manager = (KeyguardManager)context.getSystemService(KEYGUARD_SERVICE);
kl = manager.newKeyguardLock("my-remote-app");
kl.disableKeyguard();

//用于在退出时重新启用键盘保护(如果需要)

onDestroy() {
kl.reenableKeyguard();
}

这工作<=ICS。这是一个已弃用的 api,他们建议您使用 WindowManager 中的标志来获得类似的效果。尽管我未能使用 WindowManger 产生类似的效果。

希望这可以帮助,

于 2012-08-14T12:29:08.247 回答
1

请注意,我不是 Android 开发人员,但是:

如果您查看内容,即使您处于“安全锁定”模式,如果您拥有正确的权限,您似乎也可以要求 WindowManager 解除密钥保护。

于 2012-08-14T12:19:39.827 回答
1

据我所知,我们无法以编程方式解锁受密码保护的手机。

于 2012-12-13T12:31:03.600 回答
0

一种解决方案是编写“自定义锁屏”。当然,这不是最简单的方法,但它会起作用,因为您可以使用自己的锁屏做任何您想做的事情。如果您正在考虑该解决方案,请随时与我联系,我会给您一些有用的链接。干杯!

于 2012-12-14T09:24:57.267 回答