NFC (근거리 무선통신)는 단거리 무선 기술로, 일반적으로 연결을 시작하려면 거리가 4cm 이하여야 합니다. NFC를 사용하면 NFC 태그와 Android 지원 기기 간에 또는 Android 지원 기기 두 대 간에 작은 데이터 페이로드를 공유할 수 있습니다.
태그의 복잡성은 다양할 수 있습니다. 단순한 태그는 읽기 및 쓰기 의미 체계만 제공하며 때로는 일회성 프로그래밍 가능한 영역을 사용하여 카드를 읽기 전용으로 설정합니다. 더 복잡한 태그는 수학 연산을 제공하며 섹터에 대한 액세스를 인증하기 위해 암호화 하드웨어를 사용합니다. 가장 정교한 태그는 태그에서 실행되는 코드와 복잡한 상호작용이 가능하도록 하는 운영 환경을 포함합니다. 태그에 저장되는 데이터를 다양한 형식으로 작성할 수도 있지만, 다수의 Android 프레임워크 API는 NDEF (NFC Data Exchange Format)라는 NFC Forum 표준을 기반으로 합니다.
NFC를 사용하는 Android 구동 기기는 다음과 같은 두 가지 기본 작업 모드를 동시에 지원합니다.
- 읽기/쓰기 모드: NFC 기기가 수동 NFC 태그 및 스티커를 읽고 쓸 수 있습니다.
- 카드 에뮬레이션 모드: NFC 기기 자체가 NFC 카드로 작동합니다. 그러면 NFC POS 단말기와 같은 외부 NFC 판독기에서 에뮬레이션된 NFC 카드에 액세스할 수 있습니다.
- NFC 기초
- 이 문서에서는 Android가 검색된 NFC 태그를 처리하는 방법 및 애플리케이션과 관련이 있는 데이터를 애플리케이션에 알리는 방법을 설명합니다. 또한 애플리케이션에서 NDEF 데이터로 작업하는 방법 및 Android의 기본 NFC 기능을 지원하는 프레임워크 API에 대해서도 간략히 설명합니다.
- 고급 NFC
- 이 문서에서는 Android가 지원하는 다양한 태그 기술을 사용하도록 설정하는 API에 대해 설명합니다. NDEF 데이터로 작업하지 않거나 Android가 완전히 이해할 수 없는 NDEF 데이터로 작업하는 경우 자체 프로토콜 스택을 사용하여 원시 바이트로 태그를 직접 읽거나 써야 합니다. 이러한 경우 Android는 특정 태그 기술을 감지하고 자체 프로토콜 스택을 사용하여 태그와의 통신을 시작하도록 지원합니다.
- 호스트 기반 카드 에뮬레이션
- 이 문서에서는 보안 요소를 사용하지 않고 Android 기기가 NFC 카드로 작동하도록 하여 Android 애플리케이션이 카드를 에뮬레이션하고 NFC 리더와 직접 통신하도록 설정하는 방법을 설명합니다.