nfc学习总结

nfc学习过程中需要了解的知识点:

nfc概览

    nfc的概念
    nfc的操作模式
    nfc和其他无线通信(主要是蓝牙和低功耗蓝牙)的区别

nfc基础

    Android对nfc支持最好的数据交换格式是NDEF
    标签匹配系统
    标签匹配系统怎样获取mimetype(uri)
    标签匹配系统怎样匹配application及其标签匹配系统定义的三种intent
    如何从intent中获取nfc标签type和载荷数据(注意nfc载荷数据的解析都是私有的自定义协议)
    如何创建NDEFRecord及其对应的intentfilter的声明的写法
    aar NDEFRecord的写法及其用法(特别注意它仅对Android有效如果考虑兼容其他设备则不可用)
    如何使用Androidbeam实现两个Android设备交互数据

nfc加强

    Android支持的非NDEF格式的其他格式
    Android对tech intent的定义及其通过techxml文件的方式声明activity对其他那些类型的支持  
    如何使用tech包下的具体类从intent获取到Tag并和其交互
    如何实现前端匹配系统覆盖intentfilter匹配系 统

基于HCE服务的卡模拟

   什么是卡模拟及其基于se实现和基于host实现
   AID的概念及其如何通过AID 实现读卡器和卡模拟之间的识别(aid就像一个标识码在交互时读卡器会发送一个包含
   aid的apdu数据格式,系统提取并对hceservice的aid进行筛选识别) 
   HCEservice的实现:如何重写抽象方法,如何声明apduservicexml文件如何注册manifest
   AID冲突的时候解决策略
   hce对基于se卡模拟实现的兼容及offhostservice的实现
   hceservice于完全
   协议参数及其协议还有apdu格式

附录1:nfc支付架构及其交互流程

附录2:Android设备和nfc外设的通信

Android设备和其他nfc设备的通信包含两层:

Android设备通过nfc发现nfc标签并读取数据

Android设备借助nfc模块实现卡模拟和其他的nfc读卡器进行通信

nfc标签主要是Android系统标签匹配系统进行识别,nfc读卡器通信是通过路由表和Aid进行识别前者借助于activity的intentfilter的声明后者借助于后台服务service的声明。

标签匹配系统(前端匹配系统),hceservice的实现在具体的文档和demo中都有实现可以参考。

附录3:通过路由表的方式实现se模块和host兼容(路由表的方式兼容)

hce服务不仅实现了基于host的卡模拟,还兼容了基于se模块的卡模拟。兼容实现最主要的就是路由表的实现。

两种实现卡模拟方式的相同点是和nfc读卡器交互的方式相同都是nfccontroller和nfc读卡器进行数据交互,获取数据以后进行传递和分发,模式是一样的,分发的目的地不一样,基于host是分发给host cpu去处理,基于se是将数据分发给se模块去处理。

所以通过路由表中的AID和目的地进行匹配,不管是host还是se模块,一旦获取到nfc读卡器的aid,都可以通过aid和路由表进行匹配筛选,匹配到以后把数据传递到目的地即可。

在其他功能的设计上也可以借助这个设计使用表的主键和其他键匹配的方式进行不同方向的分发。

如果您觉着nfc这一系列文章有价值并对您有帮助可以赞助一瓶水润润嗓子:

results matching ""

    No results matching ""