2011-12-27 7 views

ответ

0

UPDATE:

В FAQ на ZXing был обновлен, так как я отправил этот ответ, ниже содержание больше не является точным:

Читали ZXing-х FAQ?

Может ли это использоваться на устройствах Android, имеющих только фронтальную камеру, например планшет Nexus 7? Не в это время. Для приложения требуется камера. В Android только задние камеры считаются «настоящими» камерами, и поэтому устройства с только передней камерой несовместимы. Кроме того, API поддержка фронтальных камер появилась в более позднем выпуске Android, чем , который в настоящее время требуется приложению. Передние камеры, как правило, имеют менее чувствительный ПЗС-матрицу и не имеют автоматической фокусировки, что затрудняет сканирование в любом случае.

Однако Barcode Scanner+ поддерживает устройства только спереди .

Кроме того, хотя я думаю, что это не совсем невозможно, если вы можете подключить переднюю камеру. Поэтому, я думаю, вы должны взглянуть на раздел камеры Android Документация: here и here

+0

(Это уже не так, и элемент FAQ был удален.) –

+0

@SeanOwen Спасибо, я отключил свой ответ – dumbfingers

5

Последняя версия Barcode Scanner, а также ZXing source code теперь поддерживает фронт, стоящих перед камерой.

+0

Я ищу его в настройках, но не могу найти настройки. Как ты это делаешь ? – Natim

+0

@Natim Я помню, что он обрабатывался автоматически. По умолчанию камера заднего обзора используется, но если такой камеры нет, вместо нее используется фронтальная камера. –

+0

Моя задняя камера сломана, я бы хотел попробовать с фронтальной. – Natim

9

Выполните следующие действия:

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) Все готово! =)

Надеюсь, что это поможет.

+0

хорошее описание Tiago :) –

+0

Hai Tiago, я реализовал переднюю камеру, как вы настаивали. Но он не сканирует и не получает результат. Показывается простой просмотр камеры. Если я покажу штрих-код перед ним. Ничего не произошло. Нет трассировки стека. Что может быть проблемой? Не могли бы вы помочь мне –

+0

Проблема, скорее всего, у передней камеры, у которой вы используете, нет автофокуса, что затрудняет чтение штрих-кодов. Передние камеры обычно блокируют фокус (чтобы сделать их более дешевыми), что делает их не очень хорошими для близких объектов. У меня также были проблемы с фронтальными камерами, чтобы читать штрих-коды из-за отсутствия автофокуса. Иногда это занимает более 1 минуты, пока я не смогу распознать штрих-код. В другое время я не мог заставить камеру читать штрих-код вообще. Проблема заключается не в программном обеспечении, а в самой камере. – Tiago