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코드 쉽게 만드는 사이트
'안드로이드' 카테고리의 다른 글
[android studio] 스튜디오 업데이트 후 프로젝트 인식이 안되는 경우 (0) | 2023.01.19 |
---|---|
[android] PorterDuffXfermode 활용하여 테두리 만들기 (0) | 2022.12.20 |
[android] 구글 로그인 플레이스토어 업로드시 오류 (0) | 2022.11.10 |
[android] 리사이클러뷰 아이템을 드래그해서 위치 바꾸기 (0) | 2022.11.09 |
[android] 그림자가 안생겨요. elevation not working. (0) | 2022.11.02 |
댓글