문제

이 질문은 이미 여기에 답이 있습니다.

내 앱에 바코드 스캐너를 추가하는 방법을 찾고 있습니다. 예제가 있거나 어떻게 쉽게 할 수 있습니까?

도움이 되었습니까?

해결책

ZXing 프로젝트는 Android의 의도 메커니즘을 통해 바코드 스캔을 통합하려는 다른 응용 프로그램에서 호출 할 수있는 독립형 바코드 리더 애플리케이션을 제공합니다.

이 작업을 수행하는 가장 쉬운 방법은 Zxing을 호출하는 것입니다. SCAN Intent 응용 프로그램에서 이와 같이:

public Button.OnClickListener mScan = new Button.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
        startActivityForResult(intent, 0);
    }
};

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }
}

링크 된 버튼을 누릅니다 mScan ZXing 바코드 스캐너 화면으로 직접 시작합니다 (또는 ZXing이 설치되지 않은 경우 충돌). 바코드가 인식되면 결과를받을 수 있습니다. Activity, 여기 contents 변하기 쉬운.

충돌을 피하고 당신을 위해 물건을 단순화하기 위해 Zxing은 유틸리티 클래스를 제공했습니다 사용자를 이미 설치하지 않은 경우 사용자를 Android 시장으로 리디렉션하여 Zxing의 설치를 더 매끄럽게 설치하기 위해 응용 프로그램에 통합 할 수 있습니다.

마지막으로, 별도의 ZXing 응용 프로그램을 설치하는 데 의존하지 않고 바코드 스캔을 응용 프로그램에 직접 통합하려면 오픈 소스 프로젝트이므로 그렇게 할 수 있습니다! :)


편집하다: 누군가이 안내서를이 답변으로 편집했습니다 (조금 이상하게 들립니다. 정확성에 대해 보증 할 수 없으며 2015 년에 Eclipse를 사용하는 이유는 확실하지 않습니다).

일식에서 zxing 3.2.1을 설정하는 단계별로 단계별로

  1. zxing-master.zip 다운로드 "https://github.com/zxing/zxing"
  2. zxing-master.zip unzip unclipse를 사용하여 zxing-master의 "Android"프로젝트를 가져 오기
  3. Core-3.2.1.jar에서 다운로드 ""http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/"
  4. "Android"프로젝트에 "libs"폴더를 만들고 Cor-3.2.1.jar를 Libs 폴더에 붙여 넣습니다.
  5. 프로젝트를 클릭하십시오 : "Properties" -> "Java 컴파일러"를 선택하여 레벨을 1.7로 변경하십시오. 그런 다음 Android 4.4.2+로 "Android"Change "프로젝트 빌드 대상을 클릭하십시오. 1.7을 사용하여 Android 4.4와 컴파일해야하므로
  6. "CameraconFigurationUtils.java"는 "zxing-master/android/app/src/main/java/com/zxing/client/android/camera/"에 존재하지 않는 경우. "zxing-master/android-core/src/main/java/com/zxing/client/client/android/camera/"에서 복사하여 프로젝트에 붙여 넣을 수 있습니다.
  7. 프로젝트를 청소하고 구축하십시오. 프로젝트에 "Switch -Case"에 대한 오류가 표시되면 "if- else"로 변경해야합니다.
  8. 완전한. 프로젝트를 청소하고 구축하십시오. 프로젝트에 사용할 "Proprities"> "Android"> "IS 라이브러리"를 클릭 할 수 있습니다.

다른 팁

일부 웹 사이트 (지금은 다시 찾을 수 없음)를 찾을 때까지 코드를 구현하는 데 문제가있었습니다.

응용 프로그램을 시작하지만 바코드는 인식하지 못하고 변경했을 때를 인식하지 못할 것입니다.

intent.putExtra("SCAN_MODE", "QR_CODE_MODE");

에게

intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");

잘 작동했습니다. 다른 초보자 안드로이드 프로그래머를위한 팁입니다.

제공된 의도를 사용하는 것이 좋습니다. 바코드 스캐너가없는 경우 사용자에게 바코드 스캐너를 설치하도록 프롬프트 할 수 있습니다. 또한 메시지를 사용자 정의 할 수 있습니다. intentIntegrator.request_code constant는 위의 IF 블록에서 확인하기 위해 onactivityResult에 대한 요청 코드의 값을 보유합니다.

IntentIntegrator intentIntegrator = new IntentIntegrator(this); // where this is activity 
intentIntegrator.initiateScan(IntentIntegrator.ALL_CODE_TYPES); // or QR_CODE_TYPES if you need to scan QR

intentintegrator.java

이 방식으로 zxing을 사용하려면 사용자가 이상적이지 않은 바코드 스캐너 앱을 설치해야합니다. 아마도 원하는 것은 앱에 직접 zxing을 묶는 것입니다.

이 라이브러리를 사용하는 것이 좋습니다. https://github.com/dm77/barcodescanner

Xzing 또는 Zbar를 직접 통합하려고 시도하는 모든 미친 빌드 문제가 필요합니다. 커버 아래에 해당 라이브러리를 사용하지만 API를 사용하기가 매우 간단하게 감습니다.

코드에 포함시키고 Zxing 라이브러리가 권장하는 Intentintegrator를 사용하지 않으려면 다음을 사용할 수 있습니다.

나는 첫 번째를 사용하고 완벽하게 작동합니다! 시도해 볼 샘플 프로젝트가 있습니다.

바코드 감지가 가능합니다 Google Play 서비스. 코드 실험실 설정 프로세스의 다음은 다음과 같습니다 API 문서, a 샘플 프로젝트.

이 빠른 시작 가이드를 사용할 수 있습니다 http://shyyko.wordpress.com/2013/07/30/zxing-with-droid-quick-start/ 간단한 예제 프로젝트가 포함되어 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top