Я просто хотел интегрировать ZXing API в свое приложение для Android, но не могу найти правильную документацию.Как интегрировать ZXing api с передней камерой в Android?
ответ
UPDATE:
В FAQ на ZXing был обновлен, так как я отправил этот ответ, ниже содержание больше не является точным:
Читали ZXing-х
FAQ?
Может ли это использоваться на устройствах Android, имеющих только фронтальную камеру, например планшет Nexus 7? Не в это время. Для приложения требуется камера. В Android только задние камеры считаются «настоящими» камерами, и поэтому устройства с только передней камерой несовместимы. Кроме того, API поддержка фронтальных камер появилась в более позднем выпуске Android, чем , который в настоящее время требуется приложению. Передние камеры, как правило, имеют менее чувствительный ПЗС-матрицу и не имеют автоматической фокусировки, что затрудняет сканирование в любом случае.
Однако Barcode Scanner+ поддерживает устройства только спереди .
Кроме того, хотя я думаю, что это не совсем невозможно, если вы можете подключить переднюю камеру. Поэтому, я думаю, вы должны взглянуть на раздел камеры Android Документация:
here и
here
Последняя версия Barcode Scanner, а также ZXing source code теперь поддерживает фронт, стоящих перед камерой.
Я ищу его в настройках, но не могу найти настройки. Как ты это делаешь ? – Natim
@Natim Я помню, что он обрабатывался автоматически. По умолчанию камера заднего обзора используется, но если такой камеры нет, вместо нее используется фронтальная камера. –
Моя задняя камера сломана, я бы хотел попробовать с фронтальной. – Natim
Выполните следующие действия:
1) скачать исходный код здесь: http://code.google.com/p/zxing/source/checkout
2) Импорт исходного кода в качестве нового проекта в Eclipse, и сделать корень проекта будет папку/Android (найденный в исходном коде).
3) Обязательно скопируйте все под/core/src в этот проект, так как это требует исходный код, импортированный на шаге 2.
4) Обязательно установите свой компилятор в Java 1.6 на Eclipse (щелкните правой кнопкой мыши на свой проект, свойства, компилятор Java), иначе вы получите некоторые ошибки в отношении аннотации @Override.
5) Измените класс com.google.zxing.client.android.camera.open.GingerbreadOpenCameraInterface следующим образом:
while (index < numCameras) {
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
Camera.getCameraInfo(index, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
break;
}
/*//Original code (gets the back camera. This is NOT what you want!)
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
break;
}*/
index++;
}
5) Сделать этот проект как библиотеки, так как легко описано здесь: http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject
6) Ссылка на этот проект в ваш настоящий проект (щелкните правой кнопкой мыши по вашему реальному проекту, свойствам, пути сборки Java, Projects, Add).
7) Все готово! =)
Надеюсь, что это поможет.
хорошее описание Tiago :) –
Hai Tiago, я реализовал переднюю камеру, как вы настаивали. Но он не сканирует и не получает результат. Показывается простой просмотр камеры. Если я покажу штрих-код перед ним. Ничего не произошло. Нет трассировки стека. Что может быть проблемой? Не могли бы вы помочь мне –
Проблема, скорее всего, у передней камеры, у которой вы используете, нет автофокуса, что затрудняет чтение штрих-кодов. Передние камеры обычно блокируют фокус (чтобы сделать их более дешевыми), что делает их не очень хорошими для близких объектов. У меня также были проблемы с фронтальными камерами, чтобы читать штрих-коды из-за отсутствия автофокуса. Иногда это занимает более 1 минуты, пока я не смогу распознать штрих-код. В другое время я не мог заставить камеру читать штрих-код вообще. Проблема заключается не в программном обеспечении, а в самой камере. – Tiago
(Это уже не так, и элемент FAQ был удален.) –
@SeanOwen Спасибо, я отключил свой ответ – dumbfingers