Пример Java-приложения, которое поставляется с SDK, работает безупречно.
Однако, когда я пытаюсь сделать то же самое в своем примере приложения, вызов метода Reader.Capture() никогда не возвращается, хотя я можно увидеть, как считыватель мигает, когда запись моего отпечатка пальца.
Ниже приведен вариант примера кода, который я пробовал.
Другие вещи, которые я пробовал:
- Выполнение кода захвата в экземпляре класса (т. е. не в статическом контексте)
- Выполнение операции захвата в отдельном потоке тоже, но результаты те же.
- Использование Класс CaptureThread из демонстрационного приложения
Отключение устройства приводит к сбою вызова с исключением. Это единственный способ вернуть его.
Код: Выделить всё
import com.digitalpersona.uareu.*;
public class Main{
static Reader r;
public static void main(String[] args) {
try {
// Pick first available reader
ReaderCollection rc = UareUGlobal.GetReaderCollection();
rc.GetReaders();
r = rc.get(0);
if (r==null)
return;
// Open Reader
r.Open(Reader.Priority.COOPERATIVE);
System.out.println(r.GetStatus().status); // Outputs READY
// The following call just hangs and never returns...
Reader.CaptureResult
cr = r.Capture(Fid.Format.ISO_19794_4_2005, Reader.ImageProcessing.IMG_PROC_DEFAULT, 500, -1);
System.out.println(cr.quality.name()); // Just to test
} catch (UareUException e) {
e.printStackTrace();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/678 ... not-return
Мобильная версия