DevicePolicyManager.getPasswordQuality(null)返回0而不是131072

时间:2012-06-07 07:59:51

标签: android

我配置并激活了密码策略admin,要求密码具有最小长度并且还要具有数值。

在单独的代码块中,我使用DevicePolicyManager.getPasswordQuality检查deivce上的密码质量。

但是,当我将null传递给方法时,无论密码质量由活动策略管理员配置/管理,我都会获得0(未指定)的密码质量。

另一方面,如果我明确地将设备策略admin作为组件名称传递给方法调用,我将获得正确的密码质量值。

这对我来说是不够的,因为如果有多个设备管理员处于活动/安装状态,我需要能够获得聚合密码质量,这可以通过根据api文档将null传递给方法来实现。

这里有任何指示都会有很大的帮助。

请注意,我使用的是14级(4.0.4),这是在模拟器上。

以下是有效和无效的代码片段:

什么不起作用:

    DevicePolicyManager dpm = (DevicePolicyManager)service.getSystemService(Context.DEVICE_POLICY_SERVICE);
    List<ComponentName> list = dpm.getActiveAdmins();
    ComponentName admin = null;
    String strValue = null;
strValue = String.valueOf(dpm.getPasswordQuality(admin));
//strValue has 0 value indicating password quality as unspecified 
       //although there is one active policy requiring number type password

什么工作正常:

    DevicePolicyManager dpm = (DevicePolicyManager)service.getSystemService(Context.DEVICE_POLICY_SERVICE);
    List<ComponentName> list = dpm.getActiveAdmins();
    ComponentName admin = list.get(0);
    String strValue = null;
strValue = String.valueOf(dpm.getPasswordQuality(admin));
//strValue contains 131072 indicating numberic type password 
    // which is what my policy sets[corresponding to component list.get(0)].

此致 迪帕克

0 个答案:

没有答案