1. 概述
RFID芯片fm17550 具备常见Android NFc的主要功能,但Android系统默认不支持该芯片,Amlink平台提供了专门的API函数(非andorid标准接口)支持访问该芯片,在m100c/m101c上测试可用。本门介绍API函数的使用方法。
2. API说明
API实现通过类SimpleNfcUtility来完成,常用接口如下:
2.1 public SimpleNfcUtility(Callback callback)
类的构造函数,callback是检测到卡后到回调函数,可以在callback里进行卡的读写等操作。
2.2 public void start()
该函数启动线程来检测卡是否存在,如果检测到卡,会调用上述的callback函数
2.3 public int getStatus()
获取芯片的状态,返回值1表示芯片初始化成功,-1表示初始化失败。0表示未曾初始化
2.4 public void stopChecking()
停止检测卡,结束卡操作后请确保调用此函数,否则线程会一直轮询,占用cpu资源
2.5 public boolean readBlock(byte address, byte[] buffer)
读卡函数,参数address为block线性地址,buffer为返回的数据,数组大小需等于16字节。
2.6 public boolean writeBlock(byte address, byte[] data)
写卡函数,参数address为block线性地址,buffer为待写入的数据。
2.7 public static byte getBlockAddress(int sector, int block)
地址转换函数,参数sector是扇区号,block是扇区的的块号。返回块的线性地址,readblock及writeblock函数用的块地址就是线性地址。
2.8 public boolean authenticateCard(byte authMode, byte address, byte[] key)
卡鉴权函数,读写卡之前一般需先鉴权。
2.9 Callback 回调接口,定义如下:
public interface Callback {
oid execute(SimpleNfcUtility var1);
}
2.10 public int getCardType()
获取当前卡的类型,返回值0表示type A 卡,1表示type B卡,-1为未检测到卡
2.11 public byte[] getUid()
获取卡的uid
2.12 public void enNextCheck(boolean en)
当前卡操作结束后(即回调函数执行完后),是否继续轮询下一张卡,默认是否.
3. lib
如下:
4. 参考代码
Demo 代码请联系我们,谢谢。