【发布时间】:2013-08-02 23:38:59
【问题描述】:
我正在制作一个安全程序并且我正在使用 DeviceAdmin 机制。我制作了一个 DeviceAdminReceiver,它完美无缺。 我需要保护我的软件不被卸载。在第一次运行时,用户输入卸载密码。 在 onDisableRequested 中,我使用了 setPasswordQuality()、setPasswordMinimumLength(),最后是 lockNow()。设备正在锁定并要求我输入密码。没事。当用户输入匹配的密码设备解锁时,用户会看到我的警告,例如@it's not a good idea to disable bla-bla-bla" 并禁用我的管理应用程序。
但是!我的密码设置的密码没有被清除,如果用户使用某种模式锁定他的手机,手机就会被我的密码永久锁定!
问题是:如何恢复对锁定方案的更改? (即,如果需要,将其恢复为视觉模式)
【问题讨论】:
-
为什么需要提示用户?禁用设备管理员已触发与用户的对话以确认禁用设备管理员 AFAIK
-
@QuentinSwain 只有安装它的用户才有权卸载。例如,如果手机被盗,我的程序将跟踪小偷的下落。但如果小偷可以毫无问题地卸载它,这种安全性就毫无意义。
-
你能再解释一下,这两个句子“设备正在锁定并询问我的密码”和“我的代码设置的密码没有被清除”。方法 setPasswordQuality 和 setPasswordMinimumLength 只设置新密码的限制,不设置密码本身。所以,我不是您如何使用您的代码设置实际密码。
-
@VictorRonin 我忘了提到我也使用了 resetPassword()。设备正在锁定 - 屏幕已关闭,我将其重新打开,它已被我的新密码(如 PIN)锁定。我用 resetPassword() 设置的那个 PIN 正在替换任何键盘保护设置。
标签: android mdm screen-lock