잡동사니/에러&팁

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 없어도 됨
 

 

✅ 전체 흐름 요약

  1. Fragment에 TextureView 배치
  2. Camera2로 프리뷰 띄움
  3. ImageReader로 프레임 수신
  4. InputImage.fromMediaImage()로 ML Kit에 전달
  5. QR 코드 인식되면 처리 → 멈춤

 

✅ 다음 단계

이미 이 구조로 예제 거의 완성하셨기 때문에,
🧩 필요한 건 딱 2가지:

  1. requireContext() import 수정
  2. startCamera(texture: SurfaceTexture) 방식으로 매개변수 전달 (null 방지)