2012-08-14 35 views
44

我已经写了一个应用程序,远程锁定android手机。这是当从服务器发送特殊代码时,应用程序根据特殊代码锁定手机。这是我正在使用的代码。如何通过代码远程解锁android手机

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(); 
     } 

上述代码正在工作,它锁定了手机。

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

我的问题是如何通过代码解锁手机

+0

什么是min API,并且您在mainManifest中添加了使用权限? – 2012-12-08 10:14:22

回答

1

请注意,我不是一个Android开发者,但(这解锁应该在我锁定解释的方式来远程完成):

如果你看看this,即使你处于“安全锁定”模式,如果你拥有正确的权限,看起来你可以让WindowManager解雇这个关键的后卫。

+0

不,它不会工作,因为我使用密码锁定 – kehnar 2012-08-14 12:26:37

+0

你尝试过吗? – HonkyTonk 2012-08-14 12:31:37

+0

是的,我查过了。 – kehnar 2012-08-14 12:34:25

2

试试这个

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

//为退出重新启用键盘锁(如果需要)

onDestroy() { 
kl.reenableKeyguard(); 
} 

这个作品< = ICS。 这是一个弃用的API,他们建议你使用WindowManager中的标志来获得相似的效果。尽管我无法使用WindowManger生成类似的效果。

希望这有助于

+0

已经选中。它不起作用。 – kehnar 2012-08-14 12:30:59

+0

我用它与ICS的GNote N7000,它的工作原理。您是否允许使用KeyguardManager?否则,您的意图可能因SecurityException而被杀害。 – fadedreamz 2012-08-14 14:58:48

+0

也可以在产生解锁意图时添加NEW_TASK标志。 – fadedreamz 2012-08-14 15:12:54

5

我不认为你的遥控开锁的目标是可以实现的。

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

我可以建议你简化这件事:你的应用可以尝试删除密钥锁密码,然后用户可以简单地通过在屏幕上滑动手指而无需代码就可以使用该设备。

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

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

4

对不起,写 - 没有办法从代码解锁手机。如果你找到任何方法来做到这一点 - 没有保证工作。所以没有办法远程解锁,编写自定义锁定屏幕等。

1

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

+7

你甚至没有名字。 – Shark 2012-12-13 12:32:47

6

我相信你不能覆盖内置的屏幕锁定,除非你让自己的设备像三星和HTC一样。但是,通过让您的客户使用您自己的类似屏幕锁定的应用程序,您可能可以实现您正在尝试执行的操作。

0

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

+0

Android不支持服装锁屏 – 2013-06-09 09:59:14

+0

@Ilya_Gazman它几乎支持它,但不支持官方API。为了拥有自定义锁定屏幕,您的应用将需要成为默认启动器。以下是一些示例应用程序:http://www.androidauthority.com/best-music-player-apps-for-android-208990/ https://www.androidpit.com/best-android-lock-screen-apps – 2017-04-05 22:03:41

+0

@androiddeveloper我猜在4年内会发生很多事情。大声笑 – 2017-04-06 13:17:56