NFC + HCE Your phone in an interactive world

안녕하세요 저는 Android NFC 팀의 안드레스입니다

L 개발자 프리뷰를 위해 새로 개발한 멋진 NFC와 호스트 카드 에뮬레이션 기능을 알려드리게 되어 영광입니다 먼저 호스트 카드 에뮬레이션이 무엇인지, 그리고 L 개발자 프리뷰에서 어떻게 더욱 개선했는지 알아보겠습니다 KitKat에서 저희는 HCE를 포함한 NFC 라디오를 피드함으로써 NFC의 엄청나게 간단한 근접 인터페이스를 모든 개발자가 어떤 장치에서나 사용할 수 있게 공개했습니다 NFC 애플리케이션은 더 이상 특정 독점 하드웨어에서만 작동하도록 제한되지 않으며 이제 CPU에서 직접 구동됩니다 이를 통해 KitKat 이후 버전 장치에서 작동하는 앱은 계속 성장하는 NFC 생태계의 힘을 이용할 수 있게 되었습니다

대중교통과 신분 증명, 건물 출입 이런 기능은 HCE로 만들 수 있는 기능의 빙산의 일각에 불과합니다 HCE를 통해 폰에 설치되는 앱은 교통 카드나 지불 카드처럼 스마트 카드 역할을 할 수 있습니다 스마트 카드에서 작동하는 애플리케이션처럼 HCE 앱은 애플리케이션 식별자 즉, AID를 등록하기만 하면 됩니다 애플리케이션 식별자를 통해 NFC 리더는 통신을 원하는 애플리케이션을 선택할 수 있습니다 예를 들어 저희의 I/O 교통 앱은 관련 있는 AID를 Android 런타임에 등록합니다

교통 카드 리더에 폰을 대면 해당 AID를 선택하고 I/O 교통 앱이 자동으로 작동됩니다 그 후, 자유롭게 리더와 데이터를 교환할 수 있습니다 여러분의 피드백에 따라 저희는 L 개발자 프리뷰에서 HCE 기능을 더욱 확대하여 통합을 쉽게 하고 이용 범위를 더욱 넓혔습니다 그러면 새로운 기능이 무엇인지 살펴보겠습니다 초기 HCE 개발자들은 컴파일 타임에서 AID 목록을 알 수 없음을 많이 지적했습니다

이들은 AID를 애플리케이션 상태에 따라 동적으로 등록할 수 있기를 원했습니다 L 개발자 프리뷰부터 애플리케이션은 매니페스트에 AID를 정적으로 등록할 필요가 없어졌습니다 이제 애플리케이션은 관심 있는 AID를 런타임에 동적으로 등록할 수 있습니다 예를 들어 여러분의 고객 카드가 다른 AID로 새로운 유형의 고객 카드를 수신하더라도 앱을 재컴파일할 필요 없이 등록할 수 있습니다 이러한 API를 이용하여 애플리케이션의 AID를 동적으로 등록해보세요

저희는 또한 앱이 어떤 AID의 기본 앱이 아니더라도 전면에서 거래를 처리할 수 있는 가능성을 열었습니다 KitKat에서는 한 애플리케이션만 골라 모든 결제를 처리하도록 할 수 있으며 기본 설정을 변경하려면 사용자가 설정을 만져야 합니다 L 개발자 프리뷰에서는 여러분의 앱이 전면에 나오면 AID 모음에 임시적인 기본 앱으로 등록할 수 있습니다 여러분의 상점에서만 작동하는 결제 앱이 있다고 해보죠 이름은 OneStorePay라고 하겠습니다

이 앱은 아마 기본 결제 앱으로 설정되지는 않을 것입니다 하지만 사용자가 이 앱을 열고 결제를 한다면 그 거래는 여러분의 앱으로 처리됩니다 모든 상점에서 작동하는 AllStorePay 앱은 사용자가 예상한 대로 여러분의 앱이 전면에 나오지 않으면 작동합니다 지금까지 이러한 API를 이용하여 앱이 동적인 전면 디스패치가 가능하도록 등록해봤습니다 HCE 앱을 만드는 법과 저희의 멋진 새로운 기능은 바로 여기서 더 알아볼 수 있습니다

오늘 함께 해주셔서 감사합니다 조만간 멋진 NFC와 HCE 앱을 작성하시기를 기대합니다