Android Programming

[Mobile Programming] NFC

gangintheremark 2021. 12. 17. 07:47
728x90

NFC (Near Field Communication)

  • 단거리 무선 통신 기술의 일종
  • 1-4cm이하의 가까운 거리 통신
  • 13.56mhz 주파수 사용
  • 전송 속도 106~848kbit/s

NFC 특징

  • 연결 절차 간단
  • 발견, 페어링 절차 없음
  • NFC 태그에 가까이 가면 자동 동작
  • 보안, 사생활 침해 염려 비교적 적음

NFC 모드

  • Read.write 모드 : NFC 태그에 저장된 정보를 단순히 받아 처리, 단순한 방법
  • P2P 모드 : 2개의 NFC 장치들이 데이터 주고받음
  • Card emulation : 무선 카드처럼 동작(예) 마트 POS 미널에 설치된 NFC 리더 장치)

NFC에서 사용되는 데이터의 형식

  • NDEF : NFC에서 데이터를 서로 교환 포맷
  • NDEF 레코드에 'TNF/type/id/payload 값' 저장

NDEF의 구조

  • NFC 포럼에서 정의한 NDEF 표준 포맷 준수
  • NDEF 레코드는 헤더, 페이로드로 나뉨

NDEF Record

  • TNF : 가변 길이 필드를 어떻게 해석하는지 나타냄
  • Type : 레코드의 타입 기술
  • ID : 레코드의 유일한 아이디 기술
  • payload : 읽고 쓰기를 원하는 실제 데이터

3-bit TNF

  • 페이로드에 저장된 데이터 종류 알림

Type : 레코드의 타입 정의

  • RTD-SMART-POSTER : 텍스트나 URI가 여러 레코드에 저장
  • RTD-TEXT : 텍스트 타입
  • RTD-URI : 페이로드에 URI 가 저장

NDEF 메시지의 예

  • 1줄 : TNF
  • 2줄 : type
  • 3줄 : payload

NFC태그 디스패치 시스템

인텐트를 수신하려면 매니페스트 파일 수정

  • 인텐트에 대한 필터를 지정해 줌으로써 NFC 통신에 대한 허가
<intent-filter>
    <action android:name="android.nfc.actionNDEF_DISCOVERED"/>
    <action android:name="android.intent.category.DEFAULT"/>
    <action android:name="text/plain"/>
</intent-filter>
728x90