Капча — компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. Википедия
Хотя капча в приложениях для мобильных ОС практически не нужна, я решил использовать ее в своем приложении при регистрации пользователя. Из всех библиотек для генерации капчи, более менее достойной мне показалась библиотека AndroidEasyCaptcha. Именно ее я и буду обозревать.
Библиотека может генерировать два вида капчи: текстовую и математическую. Прежде чем воспользоватся я сделал копию репозитория к себе для исправления некоторых ошибок. Вот ссылка на него: AndroidEasyCaptcha.
Создаем текстовую капчу
Captcha c = new TextCaptcha(5, TextOptions.NUMBERS_AND_LETTERS); Drawable myCaptcha = c.getImage(); //получаем изображение
Проверяем правильность введнной капчи:
String captchaText = myEditText.getText().toString(); boolean correct = myCaptcha.checkAnswer(captchaText);
Отключаем проверку регистра (данная функция доступна только в моем репозитории):
capcha.ignoreCase();
В интерфейсе TextOptions определены 5 констант:
UPPERCASE_ONLY — только символы в нижнем регистре.
LOWERCASE_ONLY – только символы в верхнем регистре.
NUMBERS_ONLY – только цифры.
LETTERS_ONLY – только слова.
NUMBERS_AND_LETTERS — слова и цифры в разных регистрах.
Внимание! В оригинальном репозитории работает только NUMBERS_AND_LETTERS. Остальные опции работают в моем репозитории.
Создаем математическую капчу
Captcha c = new TextCaptcha(400, 200, MathOptions.PLUS_MINUS_MULTIPLY); Drawable myCaptcha = c.getImage(); //получаем изображение
Проверяем правильность введнной капчи:
String captchaText = myEditText.getText().toString(); boolean correct = myCaptcha.checkAnswer(captchaText );
В интерфейсе MathOptions определены 2 константы:
PLUS_MINUS — сложение и вычитание.
PLUS_MINUS_MULTIPLY – сложение, вычитание и умножение.
Библиотека на GitHub: AndroidEasyCaptcha.
Исходники примера: AndroidEasyCaptcha.