public class RFIDWithISO14443A
extends java.lang.Object
注意:
Attention:
1、使用前请确认您的机器已安装此模块。
1. Make sure this module is installed before using your device.
2、要正常使用模块需要在\libs\armeabi\目录放置libDeviceAPI.so文件
2. Put libDeviceAPI.so file in directory \libs\armeabi\ then module can be used normally.
3、在操作设备前需要调用 init()
打开设备,使用完后调用 free()
关闭设备
3. call init()
to switch on device before operating device, call free()
to switch off device after using.
Modifier and Type | Class and Description |
---|---|
static class |
RFIDWithISO14443A.DESFireEncryptionTypekEnum
DESFire卡加密类型
DESFire card encyption type |
static class |
RFIDWithISO14443A.DESFireFileTypekEnum
DESFire卡文件类型
DESFire card file typr |
static class |
RFIDWithISO14443A.KeyType
密钥类型,适用于S50和S70标签。
key type, used for S50 and S70 tags. |
static class |
RFIDWithISO14443A.TagType
M1标签类型定义
M1 tag type definition |
Modifier and Type | Method and Description |
---|---|
boolean |
DESFire_AddApp(java.lang.String hexAppId,
int keySetting,
int fileNums)
Desfire卡 创建应用
Desfire card create application |
boolean |
DESFire_AddStdFile(int fileNo,
int commSet,
char[] accessRight,
int fileSize)
Desfire卡 创建标准数据文件
Desfire card create standard data file |
boolean |
DESFire_AddValueFile(int fileNo,
int commSet,
char[] accessRights,
int minValue,
int maxValue,
int initValue)
Desfire卡 创建值文件
Desfire card create values file |
boolean |
DESFire_Auth(int keyNo,
java.lang.String key)
Desfire卡 验证密钥
Desfire card verify key |
boolean |
DESFire_ChangeFileSetting(int fileNo,
int commSet,
char[] accessRights)
Desfire卡 获取文件设置
Desfire card acquire file setup |
boolean |
DESFire_ChangeKey(int keyNo,
java.lang.String newKey)
Desfire卡 更改密钥
Desfire card change key |
boolean |
DESFire_ChangeKeySetting(int keySetting)
Desfire卡 更改密钥设置
Desfire card change key setup |
boolean |
DESFire_CreditValueFile(int fileNo,
int value)
Desfire卡 充值函数
Desfire card recharge formula |
boolean |
DESFire_DebitValueFile(int fileNo,
int value)
Desfire卡 扣费函数
Desfire card deduction formula |
boolean |
DESFire_DelApp(java.lang.String hexAppId)
Desfire卡 删除应用
Desfire card delete application |
boolean |
DESFire_DelFile(int fileNo)
Desfire卡 删除文件
Desfire card delete file |
boolean |
DESFire_FormatCard()
Desfire卡 格式化卡片
Desfire card format card |
java.lang.String[] |
DESFire_GetApps()
Desfire卡 获取所有应用
Desfire card acquire all application |
int[] |
DESFire_GetFileIds()
Desfire卡 获取应用所有文件ID
Desfire card acquire application all file ID |
java.util.List<DESFireFile> |
DESFire_GetFiles()
Desfire卡 获取应用所有文件
Desfire card acquire all files of application |
byte[] |
DESFire_GetFileSetting(int fileNo)
Desfire卡 获取文件设置
Desfire card acquire file setup |
int[] |
DESFire_GetKeySetting()
Desfire卡 获取密钥设置信息
Desfire card acquire key setup infor |
java.lang.String[] |
DESFire_GetPiccInfo()
Desfire卡 获取卡片信息
Desfire card acquire card infor |
boolean |
DESFire_RatsAndPss()
Desfire卡 进入14443A协议的第4层,获取通讯参数
Desfire card enter 4th level of 14443A protocol, acquire communication parameter |
char[] |
DESFire_ReadStdFile(int fileNo,
int offSet,
int dataSize)
Desfire卡 读标准文件数据
Desfire card read standard file data |
int[] |
DESFire_ReadValueFile(int fileNo)
Desfire卡 获取值文件内容
Desfire card acquire values file content |
boolean |
DESFire_SelApp(java.lang.String hexAppId)
Desfire卡 选择应用
Desfire card select application |
void |
DESFire_selCpy(int cpyType)
选择加密类型
select encryption type |
boolean |
DESFire_WriteStdFile(int fileNo,
int offSet,
int dataSize,
char[] dataBuf)
Desfire卡 写标准文件数据
Desfire card write standard file data |
boolean |
free()
释放rfid模块
Release RFID module |
static RFIDWithISO14443A |
getInstance()
获取ISO14443A协议操作实例
Acquire ISO14443A protocol operation Instance |
int |
getIntegerSomeBit(int resource,
int mask)
取整数的某一位
get one place of integer |
java.lang.String |
getVersion()
获取rfid 版本信息
Acquire RFID version infor |
boolean |
init()
初始化rfid模块
initialize RFID module |
boolean |
init(boolean isRfOff) |
boolean |
ISO14443A_decrement(int iBlockValue,
int iBlockResult,
int iValue) |
boolean |
ISO14443A_increment(int iBlockValue,
int iBlockResult,
int iValue)
电子钱包充值
E-wallet charge |
boolean |
ISO14443A_initval(int iBlock,
int iValue)
电子钱包初始化
E-wallet initialize |
int[] |
ISO14443A_readval(int iBlock)
读取电子钱包余额 传入参数
read E-wallet balance |
boolean |
isPowerOn()
判断设备是否上电
Judge the device is powered on or not. |
char[] |
M1_ReadData(int sector,
int block)
读取指定扇区指定block的数据,适用于S50和S70标签。使用此函数的时候,要确保该扇区密钥验证已通过。
Read data in specified block of specified sector, used for S50 and S70 tag. |
SimpleRFIDEntity |
read(int block)
读卡,适用于Urltra light标签
card reading, used for Urltra light tag |
SimpleRFIDEntity |
read(java.lang.String key,
RFIDWithISO14443A.KeyType keyType,
int sector,
int block)
读卡,此函数包含寻卡和验证密钥步骤
Read card, this formula includes card search and key verfication procedure |
SimpleRFIDEntity |
readAllData(java.lang.String key,
RFIDWithISO14443A.TagType tagType)
读卡,读取卡片所有块中的数据
Card reading, read data of all blocks in the card |
SimpleRFIDEntity |
request()
寻卡
Search card |
boolean |
rfidUpgrade(int packageCount,
int index,
int currSize,
byte[] data)
固件升级
firmware upgrade |
char[] |
sendBusCMD(char[] time,
char[] uid,
int uidnum,
int flag)
/**
墨西哥公交命令
Mexico bus commande |
boolean |
VerifySector(int sector,
java.lang.String key,
RFIDWithISO14443A.KeyType keyType)
验证扇区。S50和S70标签需要使用到此函数。密钥验证通过才可对该扇区进行读写操作。
verificate sector. |
boolean |
write(int block,
java.lang.String hexData)
写卡,适用于Urltra light标签
Card writing, used for Urltra light tag |
boolean |
write(java.lang.String key,
RFIDWithISO14443A.KeyType keyType,
int sector,
int block,
java.lang.String hexData)
写卡,此函数包括寻卡和密钥验证异常
Card writing, this formula includes card searching and key verification err |
public static RFIDWithISO14443A getInstance() throws ConfigurationException
ConfigurationException
- 配置错误异常public SimpleRFIDEntity request()
public SimpleRFIDEntity read(java.lang.String key, RFIDWithISO14443A.KeyType keyType, int sector, int block) throws RFIDVerificationException, RFIDReadFailureException
key
- 密钥keyType
- 密钥类型sector
- 扇区block
- 块区RFIDVerificationException
- 密钥验证失败异常RFIDReadFailureException
- 读卡失败异常public SimpleRFIDEntity readAllData(java.lang.String key, RFIDWithISO14443A.TagType tagType) throws RFIDVerificationException, RFIDReadFailureException
key
- 密钥tagType
- 卡片类型RFIDVerificationException
- 密钥验证失败异常RFIDReadFailureException
- 读卡失败异常public SimpleRFIDEntity read(int block) throws RFIDReadFailureException
block
- RFIDReadFailureException
- 读卡失败异常public boolean write(java.lang.String key, RFIDWithISO14443A.KeyType keyType, int sector, int block, java.lang.String hexData) throws RFIDVerificationException, RFIDNotFoundException
key
- 密钥keyType
- 密钥类型sector
- 扇区block
- 块区hexData
- 十六进制数据RFIDVerificationException
- 密钥验证失败异常RFIDNotFoundException
- 寻卡失败异常public boolean write(int block, java.lang.String hexData) throws RFIDNotFoundException
block
- 块区hexData
- 十六进制数据RFIDVerificationException
- 密钥验证失败异常RFIDNotFoundException
- 寻卡失败异常public boolean VerifySector(int sector, java.lang.String key, RFIDWithISO14443A.KeyType keyType)
sector
- S50标签扇区取值范围:0 ~ 15 ; S70标签扇区取值范围:0 ~ 39key
- 密钥:12个十六进制数keyType
- 密钥类型public char[] M1_ReadData(int sector, int block) throws RFIDReadFailureException
sector
- block
- RFIDReadFailureException
public boolean DESFire_RatsAndPss()
public int[] DESFire_GetKeySetting()
public boolean DESFire_ChangeKeySetting(int keySetting)
keySetting
- 密钥设置信息public int getIntegerSomeBit(int resource, int mask)
resource
- 要取某一位的整数mask
- 要取的位置索引,自右至左为0-7public boolean DESFire_SelApp(java.lang.String hexAppId)
appId
- 应用ID,十六进制字符串public boolean DESFire_Auth(int keyNo, java.lang.String key)
keyNo
- 密钥号key
- 密钥public void DESFire_selCpy(int cpyType)
cpyType
- 0x01(AES),0x02(DES)public boolean DESFire_ChangeKey(int keyNo, java.lang.String newKey)
keyNo
- 密钥号key
- 密钥public java.lang.String[] DESFire_GetApps()
public boolean DESFire_DelApp(java.lang.String hexAppId)
appId
- 应用ID,十六进制字符串public boolean DESFire_FormatCard()
public java.lang.String[] DESFire_GetPiccInfo()
public boolean DESFire_AddApp(java.lang.String hexAppId, int keySetting, int fileNums)
hexAppId
- 应用ID,十六进制字符串keySetting
- 密钥设置fileNums
- 所包含的文件数public int[] DESFire_GetFileIds()
public java.util.List<DESFireFile> DESFire_GetFiles()
public byte[] DESFire_GetFileSetting(int fileNo)
fileNo
- 文件号public boolean DESFire_ChangeFileSetting(int fileNo, int commSet, char[] accessRights)
fileNo
- 文件号commSet
- 通讯设置accessRights
- 存取权限public boolean DESFire_DelFile(int fileNo)
fileNo
- 文件号public boolean DESFire_AddStdFile(int fileNo, int commSet, char[] accessRight, int fileSize)
fileNo
- 文件号commSet
- 通讯设置accessRight
- 存取权限fileSize
- 文件大小public boolean DESFire_WriteStdFile(int fileNo, int offSet, int dataSize, char[] dataBuf)
fileNo
- 文件号offSet
- 起始位置偏移量dataSize
- 数据大小dataBuf
- 数据,1~200个字节public char[] DESFire_ReadStdFile(int fileNo, int offSet, int dataSize)
fileNo
- 文件号offSet
- 起始位置偏移量dataSize
- 数据大小public boolean DESFire_AddValueFile(int fileNo, int commSet, char[] accessRights, int minValue, int maxValue, int initValue)
fileNo
- 文件号commSet
- 通讯设置accessRights
- 存取权限minValue
- 最小值maxValue
- 最大值initValue
- 初始值public int[] DESFire_ReadValueFile(int fileNo)
fileNo
- 文件号public boolean DESFire_CreditValueFile(int fileNo, int value)
fileNo
- 文件号value
- 充入的值public boolean DESFire_DebitValueFile(int fileNo, int value)
fileNo
- 文件号value
- 扣除的值public boolean ISO14443A_increment(int iBlockValue, int iBlockResult, int iValue)
iBlockValue
- 当前金额所在块iBlockResult
- 充值后剩余金额保存的块iValue
- 金额返回值:0为成功,非0为失败状态码public boolean ISO14443A_decrement(int iBlockValue, int iBlockResult, int iValue)
public boolean ISO14443A_initval(int iBlock, int iValue)
iBlock
- 要写入数据的绝对块号 块号范围 0~63iValue
- 初始金额public int[] ISO14443A_readval(int iBlock)
iBlock
- iBlock要读取数据的绝对块号 块号范围 0~63public char[] sendBusCMD(char[] time, char[] uid, int uidnum, int flag)
time
- 时分秒,3字节time
- hrs. 3 bytesuid
- 卡号缓存uid
- card number cacheuidnum
- 卡号 数量uidnum
- card number amountflag
- 0:无上下车信息, 1: 上车 ,2 :下车flag
- 0: no data of get on and off, 1: get on, 2: get offpublic boolean init()
public boolean init(boolean isRfOff)
public boolean free()
public java.lang.String getVersion()
public boolean rfidUpgrade(int packageCount, int index, int currSize, byte[] data)
packageCount
- 包的数量index
- 当前为第几个包currSize
- 当前包大小data
- 包数据public boolean isPowerOn()