본문 바로가기
안드로이드

[android] QR코드 스캔하기, 바코드 스캔하기

by 아이디생성자 2022. 11. 14.

QR 및 바코드 스캔방법

 

1. Gradle(Module)에 zxing 라이브러리 추가 https://github.com/journeyapps/zxing-android-embedded

 

implementation 'com.journeyapps:zxing-android-embedded:4.3.0'

 

 

2-1. manifest에 카메라 퍼미션 추가

 

<uses-permission android:name="android.permission.CAMERA" />

 

2-2.  manifest - application에 하드웨어 가속 true

 

android:hardwareAccelerated="true"

 

 

3. xml에 바코드뷰 만들기 (뷰 크기 조절 가능)

 

<com.journeyapps.barcodescanner.DecoratedBarcodeView
    android:id="@+id/qr_scanner"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_marginVertical="100dp"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent" />

 

 

4-1. activity 생명주기에 맞는 스캐너(=카메라) 처리

 

override fun onResume() {
    super.onResume()
    qrScanner.resume()
}

override fun onPause() {
    super.onPause()
    qrScanner.pause()
}

 

 

4-2. 스캔한 데이터 처리

 

qrScanner.apply {
        setStatusText("")
        decodeContinuous { result ->
            // TODO 스캔결과 처리
            showToast(result.text)

            // *스캔 후, 중복 방지를 위한 중지 필수
            pause()
        }
    }
}

 

 

 

결과!

 

 

 

*주의

1. 스캐너가 들어있는 뷰를 띄우기 전 카메라 권한 확인!

 

 

2. 정지 후 다시 스캔할땐 scanner.resume() 해주기!

 

btnRestart.setOnClickListener {
    qrScanner.resume()
}

 

 

 

 

 

QR코드 쉽게 만드는 사이트

https://www.the-qrcode-generator.com/

댓글