移植libnfc到Android并结合蓝牙spp操作pn532读卡之概述

时间:2024-04-14 19:16:55

整理一个半年前做的东西

主要思路是蓝牙串口模块HC-05连接nfc芯片pn532的TTL串口,Android手机通过蓝牙连接HC-05,修改libnfc的buses中的uart_posix.c代码,将它改造成通过Android蓝牙(bluetooth spp协议)提供的接口,发送串口读写指令操作pn532。

libnfc部分属于JNI层,采用NDK编译,UI层调用下层的函数。

完整代码在此:http://download.****.net/download/jmjljl/9995648

核心代码为:AndroidBlueSppNfc.c+uart_bluespp.c+mfoc.c+AppMain.java

AndroidBlueSppNfc.c为列出卡,读卡UID,模拟卡UID,发送消息等功能。

uart_bluespp.c为uart_posix.c结合蓝牙spp改写,相当于新增了一种名为bluespp的总线。

mfoc.c是另一个开源项目mfoc里的调用部分,在这里用于读取卡内部的数据,由于学校一卡通我们之前已经**,所以直接设定了key去读取(为了避免不必要的麻烦,共享出的代码里去掉了这个key,以及上层java代码里计算卡内信息部分的代码)。

AppMain.java是整个软件的上层UI部分,用于menu选择,结果显示,代码很简单。


增加这么个转接设备和软件后普通的Android手机也具备了NFC的功能哟!

效果图在此:

移植libnfc到Android并结合蓝牙spp操作pn532读卡之概述

移植libnfc到Android并结合蓝牙spp操作pn532读卡之概述