- 2개의 Android 장비간 쌍방향 데이터 교환 가능
- Android 4.0 이상 버전에서 지원
- 빔을 통해 데이터(NdefMessage)를 다른 장비로 전송하길 원하는 앱은 포그라운드로 동작하고 있어야 함
- 데이터를 수신하는 장비도 unlock 되어 있어야 함
- 수신 장비 접근시 공유하고자 하는 화면이 작아지면서 "Data 공유" 라는 사용자 인터페이스가 표시되고, 해당 화면 선택 시 사용자가 선택한 Data(NdefMessage)가 전송됨.
Android Beam 구현을 위한 함수
- setNdefPushMessage() : NdefMEssage를 Beam을 통해 전송
:: 자동적으로 2개의 장비가 근접해졌을 때 메세지가 전송됨
- setNdefPushMessageCallback() : 데이터를 빔을 통해 전송할 수 있는 범위 안에 들어올 때
:: createNdefMessage() 함수가 호출되면서 NdefMessage가 전송됨
HCE Mode ( Tap & Pay )
- 안드로이드 4.4에 SE(Secure Element)가 포함되지 않은 카드 에뮬레이션 방법이 추가됨
- 대부분의 NFC 기능을 지원하는 안드로이드 기기는 SE라고 하는 기기의 별도칩에 의해 에뮬레이션 됨
- 일반적으로 이동 통신사에서 제공하는 SIM카드에 SE가 포함되어 있음
- 안드로이드에 추가된 HCE 기능을 통해 안드로이드 앱에서 카드를 에뮬레이션 하고 NFC 리더와 직접 통신 가능
- SE를 이용한 카드 에뮬레이션
- 에뮬레이션 할 카드는 안드로이드 앱을 통해 기기의 SE에 공급되어진다.
- 기기를 NFC 단말에 올려 놓으면 NFC 컨트롤러가 Reader의 모든 데이터를 SE로 직접 라우팅함
- SE가 직접 NFC 단말기와 통신을 실행하며, 안드로이드 앱이 트랜잭션에 관여하지 않음.
- Host Based 카드 에뮬레이션
- NFC 카드가 HCE를 사용하며 에뮬레이션 되면 데이터는 SE로 라우팅되는 대신 Host CPU로 직접 라우팅 됨
- 옆 그림은 SE가 없는 NFC 카드 에뮬레이션 흐름을 보여줌
'안드로이드 > 정리' 카테고리의 다른 글
Android UI 자동화 테스트의 필요성과 Espresso (1) | 2023.05.30 |
---|---|
[ Kotlin ] Coroutines을 확실하게 (0) | 2022.01.27 |
[Android] NFC에 관해... (0) | 2021.11.02 |
[Android] 프로젝트 템플릿에 관해... (0) | 2021.11.01 |
[Android] Room에 관해... (0) | 2021.10.30 |