Всем доброго.Было принято решение ввести в проект QR сканер, он позволит быстро вводить коды доступа, обмениваться ими.
Для приложения это станет классной изюминкой, для пользователей удобным инструментом.Ну а для кодеров вроде меня...Гемороем...Думал я.
А теперь по порядку.
Часть 1: Поиск библиотек
Для начала нужно было найти библиотеки которые позволят сканировать QR коды.Порывшись нашёл проект,библиотеки возьмём из него.Как я понял он позволяет ещё и работать с bar кодами,но нам оно не нужно.
Проект сканера
Библиотека имеет расширение .jar . Следовательно для её работы необходим Android JDK.
Часть 2: Кодинг
Про метод вызова сканера говорить не вижу смысла, решайте сами.Тут лишь сам процесс запуска.
1.Для начала в проект грузим zbar.jar , libiconv.so и libzbarjni.so из файлов сканера.
2.Потом в коде загружаем их в память
Код
static {
System.loadLibrary("iconv");
}
3.Создаём объект класса ImageScanner.
Код
scanner = new ImageScanner();
scanner.setConfig(0, Config.X_DENSITY, 3); //почему именно эти параметры нигде не указано
scanner.setConfig(0, Config.Y_DENSITY, 3);
4.Передаём методу кадры с камеры.
Код
PreviewCallback previewCb = new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
String lastScannedCode;
codeImage.setData(data);
int result = scanner.scanImage(codeImage);
if (result != 0) {
SymbolSet syms = scanner.getResults();
for (Symbol sym : syms) {
lastScannedCode = sym.getData();
}
}
}
}
В итоге информация записывается в lastScannedCode. Отсюда посылаем куда хотим.
Весь код уже был в проекте, это лишь куски необходимые для добавления сканера в приложение.
Всем спасибо.