Google 코드 스캐너 (Android만 해당)

Google 코드 스캐너 API는 코드 스캔을 위한 완전한 솔루션을 제공합니다. 앱에서 카메라 권한을 요청하지 않고 사용자를 유지하면서 있습니다. 이 작업은 코드 스캔 작업을 조직 내의 앱에 스캔 결과만 반환합니다 (동영상 1). 모든 이미지는 기기에서 처리되며 Google은 결과를 저장하지 않습니다. 이미지 데이터 등이 있습니다 API는 ML Kit Barcode Scanning API를 사용하고 같은 Barcode 객체를 지정합니다.

이 API는 코드 없이도 원활하게 코드를 스캔해야 하는 앱에 적합합니다. 또는 맞춤 UI 또는 카메라 환경을 만들 수 있습니다 구현은 완전히 Google Play 서비스를 통해 앱 크기에 미치는 영향을 최소화합니다.

버전 16.1.0부터 자동 확대/축소를 사용 설정하여 Google 코드를 카메라에서 멀리 떨어진 바코드를 자동으로 스캔합니다. 날짜 사용자가 기기에 바코드를 가리키면 스캐너가 지능적으로 바코드를 확대하면 됩니다. 따라서 카메라를 수동으로 확대/축소할 필요가 바코드 스캔의 속도, 정확도 및 접근성 향상 (동영상 2 참고)

동영상 1. Google 코드 스캐너 통합 동영상 2. 자동 확대/축소 효과

맞춤 UI가 필요한 더 복잡한 사용 사례의 경우 ML Kit Barcode Scanning API를 직접 사용할 수 있습니다.

궁금한 점이 있거나 버그를 제출하고 싶거나 도움이 필요한 경우 ML Kit 커뮤니티 페이지.

<ph type="x-smartling-placeholder">

시작하기 전에

<ph type="x-smartling-placeholder">

앱을 준비하려면 다음 섹션의 단계를 완료하세요.

앱 구성

  1. 최상위 수준 settings.gradle 파일에 다음을 포함합니다. Google Maven 저장소Maven 중앙 저장소dependencyResolutionManagement 블록:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. play-services-code-scanner의 Google Play 서비스 종속 항목 추가 모듈의 Gradle 빌드 파일(일반적으로 app/build.gradle임)에 추가합니다.

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. Google Play 서비스를 자동으로 이용하도록 앱을 구성할 수 있습니다. 앱이 설치된 동안 스캐너 모듈을 기기에 다운로드 Play 스토어로 이동합니다.

    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>
    

    스캐너 모듈 가용성을 명시적으로 확인하고 이를 요청할 수도 있습니다. Google Play 서비스 ModuleInstallClient를 통해 다운로드 API를 참고하세요.

    설치 시 모듈 다운로드를 사용 설정하지 않거나 명시적인 다른 프로그램용으로 스캐너 모듈이 아직 설치되어 있지 않은지 확인합니다. 사용 사례: Google Play 서비스는 먼저 스캐너 모듈을 다운로드합니다. 시간을 단축할 수 있습니다.

코드 스캔

다음 단계를 구현하여 바코드를 스캔합니다.

  1. 선택사항: 코드 스캐너를 구성합니다.

    읽을 바코드 형식을 알고 있으면 특정 시간 동안만 감지하도록 구성하여 있습니다. 예를 들어 Aztec 코드와 QR 코드만 인식하려면 GmsBarcodeScannerOptions 객체를 정의합니다.

    Kotlin

    val options = GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(
           Barcode.FORMAT_QR_CODE,
           Barcode.FORMAT_AZTEC)
       .build()
    

    자바

    GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(
           Barcode.FORMAT_QR_CODE,
           Barcode.FORMAT_AZTEC)
       .build();
    

    기본적으로 자동 확대/축소는 사용 중지되어 있습니다. 자동 확대/축소 기능을 사용하려면 다음 단계를 따르세요. 버전 16.1.0부터 enableAutoZoom()를 호출하세요. 다음 코드 예를 참고하세요.

    Kotlin

    val options = GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(...)
       .enableAutoZoom() // available on 16.1.0 and higher
       .build()
    

    자바

    GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(...)
       .enableAutoZoom() // available on 16.1.0 and higher
       .build();
    
  2. GmsBarcodeScanner의 인스턴스를 가져옵니다. 다음과 같습니다.

    Kotlin

    val scanner = GmsBarcodeScanning.getClient(this)
    // Or with a configured options
    // val scanner = GmsBarcodeScanning.getClient(this, options)
    

    자바

    GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this);
    // Or with a configured options
    // GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);
    
  3. startScan()를 호출하여 코드 스캔을 요청합니다.

    Kotlin

    scanner.startScan()
       .addOnSuccessListener { barcode ->
           // Task completed successfully
       }
       .addOnCanceledListener {
           // Task canceled
       }
       .addOnFailureListener { e ->
           // Task failed with an exception
       }
    

    자바

    scanner
       .startScan()
       .addOnSuccessListener(
           barcode -> {
             // Task completed successfully
           })
       .addOnCanceledListener(
           () -> {
             // Task canceled
           })
       .addOnFailureListener(
           e -> {
             // Task failed with an exception
           });
    
  4. 결과로 반환되는 Barcode를 처리합니다.

    Kotlin

    val rawValue: String? = barcode.rawValue
    

    Java

    String rawValue = barcode.getRawValue();