안드로이드 RFID 리더기 개발기AT907 · NR-72R 실무 적용 후기 및 개발 포인트 정리
1. 왜 RFID 안드로이드 단말이었나물류·재고·회수 시스템을 개발하다 보면바코드만으로는 한계가 분명히 드러납니다.다량 동시 인식비가시 영역 태그 인식반복 작업 속도이 지점에서 UHF RFID + 안드로이드 단말 조합이 현실적인 대안이었습니다.이번 프로젝트에서는 AT907, NR-72R 두 기종을 실제로 사용하며 개발을 진행했습니다. 2. 장비 개요 – A…
1. 왜 RFID 안드로이드 단말이었나
물류·재고·회수 시스템을 개발하다 보면
바코드만으로는 한계가 분명히 드러납니다.
다량 동시 인식
비가시 영역 태그 인식
반복 작업 속도
이 지점에서 UHF RFID + 안드로이드 단말 조합이 현실적인 대안이었습니다.
이번 프로젝트에서는 AT907, NR-72R 두 기종을 실제로 사용하며 개발을 진행했습니다.
2. 장비 개요 – AT907 vs NR-72R
|
구분 |
AT907 |
NR-72R |
|
OS |
Android |
Android |
|
RFID |
UHF |
UHF |
|
입력 방식 |
터치 + 트리거 |
터치 + 트리거 |
|
SDK |
Java 기반 |
Java / Xamarin |
|
특징 |
안정적, 보급형 |
화면 작음, 반응 빠름 |
공통점은 전용 SDK 기반 개발 필수라는 점입니다.
일반 카메라/센서 접근과는 전혀 다릅니다.
3. 개발 환경 구성
Android Studio
Java (일부 Xamarin 예제 포함)
제조사 제공 SDK
실제 단말 디버깅 (에뮬레이터 불가)
핵심 포인트는 이 부분입니다.
RFID는 에뮬레이터에서 테스트가 거의 불가능
→ 반드시 실기기 디버깅 필요
4. 가장 많이 막혔던 부분 – 트리거 버튼
RFID 권총형 단말에서 가장 중요한 UX는
손잡이 트리거(방아쇠) 입니다.
문제 상황
버튼을 눌러도 아무 반응 없음
SDK 함수는 정상인데 스캔이 안 됨
원인
[ 트리거는 일반 버튼이 아니라 KeyEvent로 들어옴 ]
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == 293) { // 장비별 트리거 키코드
startInventory();
return true;
}
return super.onKeyDown(keyCode, event);
}
기종마다 KeyCode가 다름
반드시 Logcat으로 실제 값 확인 필요
이 부분을 모르면
“SDK가 안 된다”라고 오해하기 딱 좋습니다.
5. RFID 인식 로직 구조
실무에서 사용한 기본 흐름은 다음과 같습니다.
트리거 입력 → Inventory Start → EPC 수신 → 중복 제거 → 리스트 반영 → 서버 전송
주의할 점
EPC는 초당 수십 개씩 들어옴
UI Thread 직접 갱신 ❌
Queue / Handler 사용 권장
6. 화면 해상도 문제 (NR-72R)
NR-72R은 화면이 작고 비율이 특이합니다.
디자이너 시안 그대로 적용 ❌
Immersive Mode 필수
버튼 크기 과감하게 키워야 함
getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION );
7. MAUI / Xamarin / Native 고민
MAUI → RFID SDK 연동 난이도 높음
Xamarin → SDK 예제 존재, 비교적 수월
Native Java → 가장 안정적
결론:
RFID는 아직 Native Android가 정답에 가깝다
8. 실제 적용 사례
도서/컵 회수 시스템
물류 입·출고 검증
재고 실사 자동화
반복 스캔 기반 현장 작업
RFID 도입 후 가장 크게 바뀐 점은 단 하나입니다.
사람이 “확인”하던 일을 시스템이 “보증”한다
RFID 개발을 고민한다면
RFID 안드로이드 개발은 결코 “앱 하나 만드는 수준”이 아닙니다.
하드웨어 이해
SDK 구조 파악
실기기 테스트
현장 UX 고려
이 네 가지가 함께 가지 않으면 실서비스로 이어지기 어렵습니다.
댓글 0
첫 댓글을 남겨보세요.