3

바코드 스캐닝과 관련된 질문이 필요합니다. 바코드를 스캔하고 결과를 웹에서 검색하는 앱을 사용하고 있습니다. 지금이 내가 내 카메라 객체 스캔Nexus7에서 후면 카메라가없는 경우 전면 카메라를 사용하여 바코드를 스캔하는 방법

/** A safe way to get an instance of the Camera object. */ 
public static Camera getCameraInstance() { 
    Camera c = null; 
    try { 
     c = Camera.open(); 
    } catch (Exception e) { 
    } 
    return c; 
} 

나는 Zbar 라이브러리를 사용하고의 인스턴스를 생성 나의 방법이다. 내 질문은 장치 Asus Nexus 7에 관한 것입니다. 저는 현재 저와 함께 그 장치를 가지고 있지 않지만, 앞 카메라와 뒷면 카메라가 있습니다. 전면 카메라 만 있고 후면 카메라가없는 장치의 경우 어떻게 작동합니까? 내 코드에서 제대로 작동합니까? 다음 use-feature android : name = "android.hardware.camera.front"android : required = "false"를 추가하면

내 유일한 목적은 사용자가 바코드를 스캔 할 수있게하는 것입니다 전면 카메라와 후면 카메라 모두 후면 카메라를 통해 스캔해야하며 전면 카메라 만있는 경우 카메라를 통해서만 스캔해야합니다. 어떻게 진행해야합니까? 모든 제안을 환영합니다. :-D

답변

3

Android 2.3 이전에는 전면 카메라에 액세스하기위한 API가 없었으며 모든 카메라는 후면 카메라였습니다. 사용중인 API 호출은 원래 API 호출이며 호환성을 위해 뒷면 카메라 만 열립니다. Nexus 7에서는 null이 표시됩니다.

다른 카메라를 선택하려면 Camera.open(int)이 필요합니다. 카메라가 하나뿐이므로 Nexus 7에는 확실히 Camera.open(0)으로 열립니다. 하지만 실제로 모든 사용 가능한 카메라를 조사하고 원하는 카메라를 선택해야합니다.

source code from zxing/바코드 스캐너는 아무 것도 사용할 수없는 경우를 제외하고 후면 카메라가 어떻게 열리는 지 보여줍니다.이 경우 전면 카메라가 열립니다.

(Barcode Scanner+ 당신이 그것을있는 경우에 당신은 너무 그들 사이에서 선택할 수 있습니다 않습니다.) 숀 많이

+0

감사합니다 ..... U 생명의 은인 !!!! :) – Varun

+0

u가 바코드 스캐너를 개발 한 이래로 .... 어떤 기기에도 진저 빵보다 정교한 기기 (Nexus 7)가있는 것처럼 진저 브레드와 진저 브레드 시리즈의 전면 카메라가 있습니다. . 무작위 쿼리 남자 ... !!! – Varun

+0

진저 브레드 이후는 예외가 아닙니다. 나는 정면 카메라가있는 진저 브레드에 장치가있을 것이라고 확신합니다. 프론트 카메라를 장착 한 압력 진저 브레드 장치가 없어야합니다. API 지원이 없기 때문에 진저 브레드 장치가 없어야합니다.하지만 중국인은 브랜드 기기에서 이런 식으로 보았습니다. 그들이 사용하는 이상한 특수 API가 있고 표준 API가 작동하지 않습니다. –