所有,我有一个非常奇怪的问题。我有以下代码可以根据某些条件启用和禁用 PIN
DevicePolicyManager mDPM;
ComponentName mDeviceAdminSample;
mDPM = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample = new ComponentName(context, DeviceAdminSampleReceiver.class);
public void disablePINLock(DBHelper myDBHelper, Context context) {
mDPM.setPasswordQuality(mDeviceAdminSample,
DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
mDPM.setPasswordMinimumLength(mDeviceAdminSample, 0);
boolean result = false;
result = mDPM.resetPassword("", DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
if (result) {
// Toast: "Successfully Disabled PIN lock"
}
else {
// Toast: "Could not disable PIN lock"
}
}
public void enablePINLock(DBHelper myDBHelper, Context context) {
mDPM.setPasswordQuality(mDeviceAdminSample,
DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
mDPM.setPasswordMinimumLength(mDeviceAdminSample, 4);
Cursor c = myDBHelper.getSetting("'random'");
if (c != null) {
boolean result = mDPM.resetPassword("1234",
DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
if (result) {
// Toast: "Successfully Enabled PIN lock"
}
else {
// Toast: "Could not enable PIN lock"
}
}
else {
// Toast: "Could not enable PIN lock"
c.close();
}
}
直到几天前,该代码都可以正常工作。我重新启动手机以完成更新,此后该disablePINLock
功能无法正常工作。当函数执行时,我得到的只是“结果”为假,吐司消息“无法禁用 PIN”。该enablePINLock
方法运行良好,并且一直运行良好。
由于重新启动result = mDPM.resetPassword("", DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
未能执行。我试图捕捉一个异常,但它没有帮助。
在这一点上,我不知道为什么该方法在重新启动后停止工作。我检查了设备管理员,几次启用/禁用该应用程序,但均未成功。
我也不确定这是否相关,但让我这么说。设备管理员屏幕始终选中我的应用程序,即使在我取消选中该应用程序并将其停用后,应用程序名称也已选中该框。
预先感谢您的任何回复。