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