Core NFC
2017-12-20 本文已影响360人
娘亲Joanna
预研NFC
在预研公司L28T手环用NFC来上课签到上课的功能,看完供应商提供的芯片文档,得知苹果要求的NFC数据格式,MF1 S50-5.1芯片不支持。S50的芯片的NFC tag是MIFARE Classic,所以当手机感应手环里面的NFC时并没有任何反应。
但是手机依然可以感应到打卡机的NFC,是因为有些打卡机是S50,有些是CPU卡。
iPhone的NFC本身支持卡模拟功能。
NTAG213 芯片是符合苹果要求的Tag
iOS的NFC所支持的格式预研NFC遇到的bug
- Session is invalidated unexpectedly" UserInfo={NSLocalizedDescription=Session is invalidated unexpectedly}
2017-12-20 14:43:12.265489+0800
NFC[1571:338181]
[CoreNFC] 00000001 c00e3f00 -[NFCNDEFReaderSession beginSession]:253 errorCode: 0xca
2017-12-20 14:43:12.266788+0800
NFC[1571:338244]
error---
Error Domain=NFCError Code=202 "
Session is invalidated unexpectedly"
UserInfo={NSLocalizedDescription=Session is invalidated unexpectedly}
- 2.如1所示的错误,是因为没有配置 NFC 的 entitlements 配置了之后报错 "Feature not supported"
2017-12-20 15:04:29.033036+0800 NFC[1588:343572]
refreshPreferences: HangTracerEnabled: 0
2017-12-20 15:04:29.033085+0800 NFC[1588:343572]
refreshPreferences: HangTracerDuration: 500
2017-12-20 15:04:29.033102+0800 NFC[1588:343572]
refreshPreferences: ActivationLoggingEnabled: 0 ActivationLoggingTaskedOffByDA:0
2017-12-20 15:04:31.606438+0800 NFC[1588:343596]
[CoreNFC] 00000001 c40ee800 -[NFCNDEFReaderSession beginSession]:253
errorCode: 0x1
2017-12-20 15:04:31.606976+0800 NFC[1588:343594]
error---Error Domain=NFCError Code=1
"Feature not supported"
UserInfo={NSLocalizedDescription=Feature not supported}
咨询NFC硬件供应商的问题
- 1.NFC交互的数据格式是什么?iOS暂时只支持NDEF
- 1.NFC交互的数据格式就是NDEF格式。iOS暂时只支持NDEF,就是NFC标签里面的数据需要写成NDEF格式才能读取。
- 2.为什么用手机NFC读手环的时候 没反应,但是读门禁的时候有,他们两个的nfc 是有啥区别吗?
- 2.能读门禁,不能读手环,这个很难确定原因,一般可能是下面几个问题:
门禁和手环的芯片不同;手环的天线小,读距较低。
- 2.能读门禁,不能读手环,这个很难确定原因,一般可能是下面几个问题:
-
- NFC tag 是什么?例如L28T里面的一个芯片+NFC天线就是了
- NFC tag是指符合NFC协议的高频芯片。L28T(MF1S50)也是高频芯片,不过是非标的NFC芯片,可能有部分手机是读不了的,但是感应是可以
-
- 怎么拿到NFC交互的数据格式?
- NFC有个官方网站,https://nfc-forum.org/,上面可以下载相关文件,不过有些需要权限,其实一般的文档,直接上网搜就有
-
- 怎么看NFC的数据交互?
- 推荐android的一个APP,NXP的tagInfo,可以查看标签信息
-
- 手机实现打卡的功能
- 手机实现打卡功能,一般使用的是卡模拟模式
-
- 手机NFC 读写功能
- 读写可以用app实现,读:taginfo,写:tagwriter
补充
- L28T使用的芯片是MIFARE CLASSIC也可以用NfcA的标准来解析的,当然视手机而定。
- 芯片型号是:MF1S50,如有里面有数据格式的话,自己定的。供应商是没有写入任何数据的
- 那个NFC tag Type 2是 MIFARE Ultralight 和MIFARE 有区别,也就是说s50芯片苹果不支持,无法感应也没有任何提示。
- S50的话,一般只有使用NXP的NFC控制芯片才能读取的
- 供应商Type 2的芯片有几款的,Ultralight,NTAG21X等都符合,看是否换芯片
- android的话,如果NFC手机不支持S50的话,会提示本手机不支持此类型
苹果就直接对不支持的类型不做任何反应
- S50芯片说明书