2

パスワード ポリシー管理者が構成され、アクティブ化されており、パスワードに最小の長さと数値を含める必要があります。

別のコード ブロックで、DevicePolicyManager.getPasswordQuality を使用してデバイスのパスワードの品質をチェックしています。

ただし、メソッドに null を渡すと、アクティブなポリシー管理者によって構成/管理されているパスワードの品質に関係なく、パスワードの品質が 0 (未指定) になります。

一方、デバイス ポリシーの管理者をコンポーネント名としてメソッド呼び出しに明示的に渡すと、正しいパスワード品質の値が得られます。

複数のデバイス管理者がアクティブ/インストールされている場合、集計されたパスワードの品質を取得できる必要があるため、これは私にとって十分ではありません。これは、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)].

よろしく、 ディーパック

4

0 に答える 0