Ответ 1
Мне нужно было делать то, что вас просят сделать. Это было не так просто, но это было не так уж плохо. Это было также мое первое (коммерческое или другое) приложение для Android. Я сделал это:
- Получить проект ZXing, скомпилированный и работает на вашем компьютере. Там это хороший учебник о том, как это сделать здесь.
-
Адаптируйте этот код в соответствии с вашими потребностями. Я отделил много проекта от простого сканера. Затем я построил остальную часть своего проекта вокруг него. Вот как это сделать.
-
Адаптировать CaptureActivity в ядре как можно проще. Все, что вам нужно - это номер, возвращаемый из основного кода сканера. Вот изображение структуры моего проекта:
-
Что вы найдете, так это то, что вам нужно изменить 4 файла для измененного класса активности. Этими файлами являются класс CameraCaptureActivity, класс CaptureActivityHandler и классы обработчика Decode Thread и Decode. Я размещал эти файлы здесь.
-
Возьмите эти четыре файла и поместите их в копию рабочего проекта ZXing. Удалите исходную CaptureActivity и другие исходные темы и классы обработчиков, которые вы заменили. (Игнорируйте файл CaptureActivityHandlerDemo, поскольку он был помещен туда по ошибке)
-
Измените имена пакетов в соответствии с именами рабочих ZXing. Убедитесь, что ваша активность названа одинаковой во всех четырех классах. Было бы неплохо передать интерфейс, который реализует "getHolder", а не сам класс активности.
-
Убедитесь, что вы обновили манифест с любыми изменениями в имени своей деятельности. Удостоверьтесь, что у вас есть способ навигации к действию - возможно, сделайте его классом по умолчанию в области фильтра намерения.
-
Я также включил файл макета для вашей деятельности - он очень прост, но все, что вам нужно, чтобы запустить сканер и работать. он называется camera_capture.xml
Надеюсь, это все, что вам нужно, чтобы встать и работать. Это нелегкий процесс, и, к сожалению, я не могу дать вам весь мой проект, поскольку это коммерческий продукт.
Удачи!!
PS, пожалуйста, размещайте любые вопросы в качестве комментариев к этому ответу, и я сделаю все возможное, чтобы помочь.