잡동사니/에러&팁
QR코드 인식 문제 - 기기 호환성
heylo
2025. 5. 21. 16:42
1) Zxing 라이브러리 이용하여 QR 코드 인식 시도함
> NU310 기기가 고정 초점 카메라여서
포커스를 못잡아서 QR코드 인식이 안 됨
2) 다른 라이브러리 찾아봄 : ML Kit
프레임 기반, 포커싱이 완벽하지 않아도 테스트 구조 인식으로 성공률 높음
> NU310기기는 CameraX와 호환이 안 됨
3) ML Kit + Camera2 기반 구현
🚫 안 되는 방식 정리
방법 | 이유 |
Zxing (JourneyApps) | Nu310은 고정 초점 카메라 → Zxing은 포커스 필수 → 인식 실패 |
ML Kit + CameraX | Nu310은 CameraX 미지원 → 프리뷰/분석 자체 불가능 |
ML Kit + Camera2 | 구조는 가능하나, 직접 구현해야 하고 복잡 + Fragment 안에서 Hilt/Navi와 충돌 가능성 높음 |
✅ 현실적인 선택지
💡 ML Kit + Camera2 API 직접 구현 (권장)
➡️ 이미 ML Kit가 포커싱이 약해도 QR 구조 인식이 가능하므로,
➡️ Camera2 API로 프레임만 확보해서 ML Kit에 넘기면 됩니다.
➡️ 고정초점이어도 ML Kit는 인식 성공률이 높음
✅ 실현 가능한 조합
구성요소 | 설명 |
카메라 | Camera2 API 사용 (기기 호환성 보장) |
분석기 | ML Kit: BarcodeScanning |
프리뷰 | TextureView 사용 |
권한 처리 | CAMERA 권한 직접 처리 |
Fragment | Fragment에서 동작, Hilt 없어도 됨 |
✅ 전체 흐름 요약
- Fragment에 TextureView 배치
- Camera2로 프리뷰 띄움
- ImageReader로 프레임 수신
- InputImage.fromMediaImage()로 ML Kit에 전달
- QR 코드 인식되면 처리 → 멈춤
✅ 다음 단계
이미 이 구조로 예제 거의 완성하셨기 때문에,
🧩 필요한 건 딱 2가지:
- requireContext() import 수정
- startCamera(texture: SurfaceTexture) 방식으로 매개변수 전달 (null 방지)