안드로이드/정리

[Android] Android Beam에 관해...

  • 2개의 Android 장비간 쌍방향 데이터 교환 가능
  • Android 4.0 이상 버전에서 지원
  • 빔을 통해 데이터(NdefMessage)를 다른 장비로 전송하길 원하는 앱은 포그라운드로 동작하고 있어야 함
  • 데이터를 수신하는 장비도 unlock 되어 있어야 함
  • 수신 장비 접근시 공유하고자 하는 화면이 작아지면서 "Data 공유" 라는 사용자 인터페이스가 표시되고, 해당 화면 선택 시 사용자가 선택한 Data(NdefMessage)가 전송됨.

Android Beam 구현을 위한 함수

  • setNdefPushMessage() : NdefMEssage를 Beam을 통해 전송
    :: 자동적으로 2개의 장비가 근접해졌을 때 메세지가 전송됨
  • setNdefPushMessageCallback() : 데이터를 빔을 통해 전송할 수 있는 범위 안에 들어올 때
    :: createNdefMessage() 함수가 호출되면서 NdefMessage가 전송됨

Android Beam Data Flow ( NFC만 사용 )
Android Beam Data Flow ( NFC + BlueTooth ) P2P모드

 

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 카드 에뮬레이션 흐름을 보여줌