好吊视频一区二区三区-国产精品V欧美精品V日韩精品-老司机亚洲精品影院-国产精品视频免费播放

物聯傳媒 旗下網站
登錄 注冊
RFID世界網 >  新聞中心  >  企業動態  >  正文

龍杰ACR122U NFC讀卡器支持Apple Pay功能

作者:龍杰供稿
來源:來源網絡(侵權刪)
日期:2016-03-29 09:48:56
摘要:自從谷歌的操作系統Android4.4增加了NFC功能,龍杰NFC研發組就跟蹤測試了基于主機的卡模擬(HCE)功能(類似于現在火爆的Apple pay)。就是說龍杰ACR122U NFC讀寫器亦可以支持Apple pay 中基于硬件SE的卡模擬功能。

  自從谷歌的操作系統Android4.4增加了NFC功能,龍杰NFC研發組就跟蹤測試了基于主機的卡模擬(HCE)功能(類似于現在火爆的Apple pay)。就是說龍杰ACR122U NFC讀寫器亦可以支持Apple pay 中基于硬件SE的卡模擬功能。

龍杰ACR122U NFC讀卡器支持Apple Pay功能

  龍杰ACR122U NFC讀寫器可支持Apple pay 功能

  下面基于主機模擬卡的連接龍杰ACR122U的原理給大家演示一遍,先介紹基于主機的卡模擬功能的工作原理。

  ISO/IEC 7816-4卡片模擬

  ISO/IEC 7816-4標簽將內存分為多個可以單獨選擇的應用。每個應用有一個名稱或者文件ID。你可以發送SELECT命令并在命令中指定正確的應用名稱來連接應用。為了實現這套系統,Android基本上是將每個Android應用程序視作標簽中的一個或者多個應用。由于應用名稱或者文件ID應當具有唯一性,所以這個功能非常酷,現在你的Android智能手機變成了一個大標簽。這套系統甚至能夠與基于安全模塊的卡模擬共存。

  建立連接的過程十分簡單。首先通過龍杰ACR122U讀寫器(PN532 NFC芯片)發送一個InListPassiveTarget命令。一旦目標進入讀寫范圍內,就直接通過DataExchange命令發送一個SELECT APDU。從現在開始只需繼續發送DataExchange命令,直到整個通信過程結束。

  以十六進制格式表示(InListPassiveTarget):

  D4 4A 01 00

  一旦目標進入范圍,你會收到下列目標信息:

  01 0004 60 04 089D64A2 0575807002

  01 = Target No

  0004 = SENS_RES

  60 = SEL_RES (please have a look at the HCE documentation how to compare the value)

  04 = length of the NFCID

  089D64A2 = random NFCID, it changes with every connection

  0575807002 = ATS

  現在可以發送SELECT APDU與手機上的APP建立連接:

  D44001 00A4040007F001020304050600

  返回數據如下:

  00 = CLAss

  A4 = INStruction, SELECT

  04 = P1, select by name

  00 = P2

  07 = length of the application name

  F0010203040506 = application name as defined in the manifest by the AID-filter

  你的HostApduService會收到上述信息作為第一條APDU。現在你可以隨意發送數據,甚至沒有必要編碼為APDU。

  下面是為該演示編寫的代碼:

  IsoDepTamaCommunicator屬于桌面端,桌面端使用NFCTools與Android設備建立IsoDep連接。完整示例請參看org.nfctools.examples.hce package

龍杰ACR122U NFC讀卡器支持Apple Pay功能

龍杰ACR122U NFC讀卡器支持Apple Pay功能

  在Android端,你有一個簡單的HostApduService(定義見HCE文件)。完整源代碼見host-card-emulation-sample repository

龍杰ACR122U NFC讀卡器支持Apple Pay功能

  陷阱

  在開發過程中首先假設APDU使用常見的CLA,所以選用了DesFire卡的0x90。但返回下列錯誤消息。

  E/BrcmNfcNfa(1187): CET4T: Unsupported Class byte (0x90)

  通過查看Android source code,會發現正確的CLA是0x00。另外預期的P1參數也可以在源代碼中找到。

  NFCTools范例

  如果想要嘗試,可以克隆host-card-emulation-sample GitHub庫,為自己的設備編寫Android App。前提要求是Android 4.4系統以上。而桌面端只需要從nfctools-examples releases下載最新版本的nfctools-examples.jar。

  通過以下命令啟動范例:

  java -cp nfctools-examples.jar org.nfctools.examples.hce.HceDemo

  小結

  基于主機的卡模擬功能非常簡單易用。相較于Android Beam功能的LLCP/SNEP實現來說,不容易出錯并且響應速度要快許多。當然采用HCE模式進行P2P通信只是一個小技巧而已。期望Android團隊會在未來版本中開放對SNEP棧的訪問。

  需要注意的是,一個DataExchange命令能夠傳輸的數據量限制在200字節左右。如果希望傳輸大量數據,則需要自己將其劃分為幾個小的塊。

  龍杰NFC研發組就跟蹤測試了基于主機的卡模擬(HCE)功能(類似于現在火爆的Apple pay)。就是說龍杰ACR122U NFC讀寫器亦可以支持Apple pay 中基于硬件SE的卡模擬功能。

  如果你對nfctools有任何疑問,請關注ACS微信加入龍杰NFC研發組一起討論吧。

龍杰ACR122U NFC讀卡器支持Apple Pay功能

  (rfid世界網獨家稿件,轉載請注明來源作者!)

人物訪談