Device Password in Android is existing or not

对着背影说爱祢 提交于 2019-11-28 11:40:37

问题


I am trying to know whether a screen lock password is already present or not, when my app has started.

case 1: If there is a screen lock password already... I would do the locking (locknow()) using device manager and ask the user to login again.

case 2: If there is no screen lock password.... i would ask user to set a password using devicepolicymanager class.

But I was unable to know, how to check whether a screen lock password is already present or not. is there any boolean returning method in device manager api ?...i was unable any of such

I was able to know whether active admins are present or not.... now,can someone tell me how to know whether a screen lock password is already present or not ...

Is it a secuirty thing that app developers are not allowed to find?

Is there a system level approach?

can device policy manager help me to get that info?

thanks in advance


回答1:


KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
if( keyguardManager.isKeyguardSecure()) {
   //it is password protected
} else {
   //it is not password protected 
}

The method isKeyguardSecure() is introduced in API Level 16




回答2:


Look here How to reveal that screen is locked?. The matter was extensively discussed and resolved there




回答3:


Try the following:

dpm.setPasswordMinimumLength(new ComponentName(<package>, <class>), 0);

Log.d("Log", "Reset done: " + dpm.resetPassword("", 0)); // i.e. clear password
Log.d("Log", "Sufficient: " + dpm.isActivePasswordSufficient());

Log.d("Log", "Reset done: " + dpm.resetPassword("0000", 0));
Log.d("Log", "Sufficient: " + dpm.isActivePasswordSufficient());

// of device admin receiver
dpm.setPasswordMinimumLength(new ComponentName(<package>, <class>), 1); 

Log.d("Log", "Reset done: " + dpm.resetPassword("", 0));
Log.d("Log", "Sufficient: " + dpm.isActivePasswordSufficient());

Log.d("Log", "Reset done: " + dpm.resetPassword("0000", 0));
Log.d("Log", "Sufficient: " + dpm.isActivePasswordSufficient());

Conclusion:

  1. use setPasswordMinimumLength(..., 1)

  2. check if password is sufficient

  3. if not set password with resetPassword()

  4. call lockNow()




回答4:


May be you have already found the solution. However I'm posting here this for the future reference.

You can use isActivePasswordSufficient() method in DevicePolicyManager to check the current status of the password as well as the availability.

Refer http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isActivePasswordSufficient%28%29 for more details.



来源:https://stackoverflow.com/questions/6588969/device-password-in-android-is-existing-or-not

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!