2012-01-23 1 views
2

Мне нужно определить, имеет ли пользователь возможность разблокировки лица в ICS (android 4.0). Есть ли способ сделать это?Как определить, включена ли функция разблокировки лица в ICS?

Я могу обнаружить, если шаблон блокировки включена, как это:

Settings.Secure.getInt (getContentResolver(), Settings.Secure.LOCK_PATTERN_ENABLED)

Но не кажется, чтобы быть эквивалентная настройка для разблокировки лица.

Спасибо.

+0

Я не нашел решение, но в конечном итоге я использовал logcat для просмотра активности запуска разблокировки лица. моему приложению необходимо предупредить пользователя о том, чтобы не использовать разблокировку лица, поэтому это работает для меня. –

ответ

2

Я работаю над тем же вопросом. Это единственное решение, с которым я столкнулся, но для устройства было необходимо, чтобы Device Administration было включено.

DevicePolicyManager dpm = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE); 
ComponentName component = new ComponentName(context.getApplicationContext(), WrDeviceAdminReceiver.class); 
dpm.setPasswordQuality(component, DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK); 
result = (dpm.isActivePasswordSufficient() == true); 
dpm.setPasswordQuality(component, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); 
+0

это действительно не работает для меня. он дает ложное положительное значение, если у вас есть контакт или пароль, а функция разблокировки лица не включена. из андроидных документов: «Константы качества упорядочены так, что более высокие значения являются более ограничительными». PASSWORD_QUALITY_BIOMETRIC_WEAK - вторая самая низкая нумерованная константа (32768), чуть выше PASSWORD_QUALITY_UNSPECIFIED (0) и чуть ниже PASSWORD_QUALITY_SOMETHING (65536). поэтому любое существующее качество паролей, которое является более строгим, чем PASSWORD_QUALITY_BIOMETRIC_WEAK, что почти у всех, приведет к тому, что isActivePasswordSequ() вернет true. –