友我科技NFC讀寫器andriod開發指南(HF和UHF)

支持IC卡讀(dú)卡器在andriod中應(yīng)用,andriod4.0及以上

目錄
高頻HF讀寫器NFC讀寫器安卓開發
簡介
NFC讀寫器Android開發指南
類usbreader
類readerhardware
類iso14443A
類PSam
類id2card

超高頻UHF讀寫器安卓開發
簡介
NFC讀寫器Android開發指南
類usbreader
類readerhardware
類G2

随著(zhe)Android系統的設備越來越多,在Andriod設備上使用NFC讀寫器變得越來越廣泛。爲瞭(le)将NFC讀寫器應用android設備上,友我科技獨立研發瞭(le)NFC讀寫器的android開發包,使用此開發包,工程師隻需在工程中導入jar包,使用java語言就可以輕松的開發出Android下的NFC讀寫器應用APP。

友我科技NFC讀寫器Android開發包相關信息:

項目 信息
支持的Android系統 4.0及以上版本
讀卡器接口 USB HID(需OTG數據線)
jar包及下載 yoworfidreader.jar
支持的NFC讀寫器 YW-605HAYW-607
獲取NFC讀寫器樣品 YW-605HAYW-607
演示程序

點擊下載:NFC讀寫器Android演示程序

掃描下載 :

二維碼

 

 

NFC讀寫器Android開發指南                                

在所有API接口中有3種返回值,說明如下:
第一種:void, 無任何返回值
第二種 :int,返回整形,>=0爲成功 ,<0爲失敗
第三種 :byte[], byte數組, 如果爲null則爲失敗,隻要不爲null,就是執行成功

首先在工程中導(dǎo)入yoworfidreader.jar接口包,同時在在order and Export中選中yoworfidreader.jar 包,這樣可以随著(zhe)你的應用程序一起發布。

導入yoworfidreader.jar

選中yoworfidreader.jar

然後(hòu)再自己的工程中創(chuàng)建usbreader的object,如下所示:

public usbreader rfidreader;
rfidreader = new usbreader();

隻(zhǐ)要rfidreader!=null,就可以使用瞭(le)。

類(lèi)usbreader的屬(shǔ)性:

屬性名 類型(類名) 名稱 備注
ReaderHardware readerhardware NFC讀卡器硬件操作類 可以操作讀卡器的蜂鳴器,LED燈等
ISO14443A iso14443A ISO14443A類型卡片操作類 讀寫M1卡,CPU卡等卡片
ISO15693 iso15693 ISO15693類型卡片操作類 讀寫15693卡,包含Tagit,ICode2,MB89R118C等
ID2Card id2card 身份證卡片操作類 讀取身份證卡的卡号
PSAM PSam

PSAM卡操作類

 

操作PSAM卡

類usbreader的方法:

1. void TryUSB(Context context)

TryUSB方法的作用是嘗(cháng)試連接USB設備(bèi),在android系統下 ,連接USB設備(bèi)會出現權限的提示窗口,需要此時點擊是按鈕。

rfidreader.TryUSB(this);

 

2. boolean Initial(Context context)

Initial方法的作用是初始化 NFC讀(dú)寫器,隻有經過初始化後才能對讀(dú)卡器進行其他操作。初始化成功返回true,失敗(bài)返回false。

rfidreader.Initial(this);

 

usbreader類(lèi)有多個(gè)public的屬性,這些屬性分别操作各類(lèi)IC卡片

1、ReaderHardware,類名:readerhardware,功能:管理讀(dú)卡器硬件和切換(huàn)卡片類型

類(lèi)readerhardware的屬(shǔ)性:

屬性名 類型 名稱 備注
SEARCHCARDMODE_14443A byte A類卡 常量,讀寫M1卡,CPU卡等卡片,需要切換此種類型
SEARCHCARDMODE_14443B byte B類卡 常量,身份證卡切換的類型
SEARCHCARDMODE_15693 byte 15693卡 常量,15693卡切換的類型

類readerhardware的方法:

1.1 int YW_GetLibVersion()

YW_GetLIBVersion方法獲(huò)取jar庫(kù)的版本号 。如下代碼所示:

int Ver = rfidreader.ReaderHardware.YW_GetLibVersion();

 

1.2 int YW_GetReaderVersion()

YW_GetReaderVersion方法獲(huò)取NFC讀(dú)寫器的版本号。如下代碼所示:

int Ver = rfidreader.ReaderHardware.YW_GetReaderVersion();

 

1.3 byte[] YW_GetReaderSerial()

YW_GetReaderSerial方法獲(huò)取NFC讀(dú)寫器的序列号。如下代碼所示:

byte[] SerialNo = rfidreader.ReaderHardware.YW_GetReaderSerial();

 

1.4 byte[] YW_GetReaderNo()

YW_GetReaderSerial方法獲(huò)取NFC讀(dú)寫器型号。如下代碼所示:

byte[] ModelNo = rfidreader.ReaderHardware.YW_GetReaderNo();

 

1.5 int YW_Buzzer(int Time_ON, int Time_OFF, int Cycle)

YW_Buzzer方法控制NFC讀寫器的蜂鳴器。參數如下:
Time_ON: 蜂鳴器鳴叫的時間(100ms單位)
Time_OFF: 蜂鳴器不響的時間(100ms單位)
Cycle:上述循環的次數

rfidreader.ReaderHardware.YW_Buzzer(5,5,1);

 

1.6 int YW_Led(int LEDIndex, int Time_ON, int Time_OFF, int Cycle, int LedIndexOn)

YW_Led方法控制NFC讀寫器的LED燈。參數如下 :
LEDIndex:LED燈的序号
Time_ON: 蜂鳴器鳴叫的時間(100ms單位)
Time_OFF: 蜂鳴器不響的時間(100ms單位)
Cycle:上述循環的次數
LedIndexOn:最後燈亮的LED序号

rfidreader.ReaderHardware.YW_Led(1,5,5,1,1);

 

1.7 int YW_AntennaStatus(boolean ATStatus)

YW_AntennaStatus方法控制NFC讀寫器天線狀态。參數如下:
ATStatus:true爲開天線,false爲關天線,默認狀态下天線時開啓的

rfidreader.ReaderHardware.YW_AntennaStatus(true);

 

1.8 int YW_SearchCardMode(byte Mode)

YW_SearchCardMode方法控制NFC讀寫器天操作的卡類型。PSAM卡不用切換,參數如下:
Mode:卡的類型,值分别如下:
SEARCHCARDMODE_14443A,A類卡
SEARCHCARDMODE_14443B,B類卡
SEARCHCARDMODE_15693,15693類卡

rfidreader.ReaderHardware.YW_SearchCardMode(rfidreader.ReaderHardware.SEARCHCARDMODE_14443A);

2、ISO14443A,類名:iso14443A,功能:操作TypeA卡,包括M1卡,CPU卡等

類(lèi)iso14443A的屬(shǔ)性:

屬性名 類型(類名) 名稱 備注
REQUESTMODE_ALL byte 尋所有卡 常量
REQUESTMODE_ACTIVE byte 尋active的卡 常量
Key_A byte A密鑰 常量
Key_B byte B密鑰 常量
MULTIMODE_ONE byte

返回一張卡

 

常量
MULTIMODE_ERR byte

返回錯誤

 

常量
CardType short

卡類型

 

卡類型,執行某些函數後,會改變此值
CardMemery byte

卡内存代碼

 

卡内存,執行某些函數後 ,會改變此值
ValueBalance int

錢包餘額

 

錢包餘額,讀取錢包餘額成功後,改變此值
ATQA short

ATQA

 

ATQA,執行某些函數後,會改變此值
SAK byte

SAK

 

SAK,執行某些函數後,會改變此值

類(lèi)iso14443A的方法:

 

2.1 int YW_RequestCard(byte requestMode)

YW_RequestCard尋卡。參數如下:
requestMode:尋卡模式,有如下兩種值可用:
REQUESTMODE_ALL:尋所有的卡
REQUESTMODE_ACTIVE:尋激活的卡

int rt = rfidreader.ISO14443A.YW_RequestCard(rfidreader.ISO14443A.REQUESTMODE_ACTIVE);

 

2.2 byte[] YW_AntiCollide()

防沖撞讀卡号。

byte[] CardNo = rfidreader.ISO14443A.YW_AntiCollide();

 

2.3 int YW_CardSelect(byte[] CardNo)

根據卡号選擇一張卡來操作。參數如下:
CardNo:要操作的卡号

int rt = rfidreader.ISO14443A.YW_CardSelect(CardNo);

 

2.4 byte[] YW_AntiCollideAndSelect(byte MultiMode)

防沖撞並且選擇一張卡。該函數集成瞭YW_AntiCollide和YW_CardSelect兩個函數 參數如下:
MultiMode:遇到多張卡的處理方式,有兩種值可用
MULTIMODE_ONE:返回一張卡
MULTIMODE_ERR:返回錯誤
受影響的屬性值 :
CardMemery

byte[] CardNo = rfidreader.ISO14443A.YW_AntiCollideAndSelect(rfidreader.ISO14443A.MULTIMODE_ONE);

 

2.5 int YW_CardHalt()

對(duì)當(dāng)前卡片休眠,休眠後無法使用REQUESTMODE_ACTIVE來尋卡。

int rt = rfidreader.ISO14443A.YW_CardHalt();

 

2.6 int YW_DownLoadKey(int KeyIndex, byte[] Key)

下載密鑰到讀寫器中, 參數如下 :
KeyIndex:密鑰序号,最多可以下載32組密鑰 ,序号從0到31
Key:密鑰 ,6字節

byte[] Key = new byte[6];
for(int i=0;i<6;i++)Key[i]=0xFF;
rfidreader.ISO14443A.YW_DownLoadKey(0,Key);

 

2.7 int YW_KeyDown_Authorization(byte KeyMode, int BlockAddr, byte KeyIndex)

使用下載的密鑰進行認證, 參數如下:
KeyMode:使用A密鑰還是B密鑰認證,Key_A爲A密鑰 ,Key_B爲B密鑰
BlockAddr:塊序号
KeyIndex:密鑰序号,0到31

int rtAuth= rfidreader.ISO14443A.YW_KeyDown_Authorization(rfidreader.ISO14443A.Key_A,1,0);

 

2.8 int YW_KeyAuthorization(byte KeyMode, int BlockAddr, byte[] Key)

使用密鑰進行認證, 參數如下:
KeyMode:使用A密鑰還是B密鑰認證,Key_A爲A密鑰,Key_B爲B密鑰
BlockAddr:塊序号
Key:密鑰 ,6字節

byte[] Key = new byte[6];
for(int i=0;i<6;i++)Key[i]=0xFF;
int rtAuth= rfidreader.ISO14443A.YW_KeyAuthorization(rfidreader.ISO14443A.Key_A,1,Key);

 

2.9 byte[] YW_ReadaBlock(int BlockAddr)

讀數據塊, 參數如下:
BlockAddr:塊序号

byte[] Data=rfidreader.ISO14443A.YW_ReadaBlock(1);

 

2.10 int YW_WriteaBlock(int BlockAddr, byte[] BlockData)

寫數據塊, 參數如下:
BlockAddr:塊序号
BlockData:要寫入的數據,16字節

byte[] Data = new byte[16];
for(int i=0;i<16;i++)Data[i]=0xAA;
int rt= rfidreader.ISO14443A.YW_WriteaBlock(1,Data);

 

2.11 int YW_Purse_Initial(int BlockAddr, int Value)

初始化錢包, 參數如下:
BlockAddr:塊序号
Value:要初始化的值,16字節

int rtAuth= rfidreader.ISO14443A.YW_Purse_Initial(1,200);

 

2.12 int YW_Purse_Read(int BlockAddr)

錢包讀餘額,返回值不是餘額,如果返回成功,餘額等於ValueBalance 參數如下:
BlockAddr:塊序号

int Balance=0;
int rt= rfidreader.ISO14443A.YW_Purse_Read(1);
if(rt>0)Balance=rfidreader.ISO14443A.ValueBalance;

 

2.13 int YW_Purse_Charge(int BlockAddr, int Value)

錢包充值,參數如下:
BlockAddr:塊序号
Value:充值的金額

int rt= rfidreader.ISO14443A.YW_Purse_Charge(1,100)

 

2.14 int YW_Purse_Decrease(int BlockAddr, int Value)

錢包消費,參數如下:
BlockAddr:塊序号
Value:消費的金額

int rt= rfidreader.ISO14443A.YW_Purse_Decrease(1,100)

 

2.15 int YW_Transfer(int BlockAddr)

錢包Transfer,參數如下:
BlockAddr:塊序号

int rt= rfidreader.ISO14443A.YW_Transfer(1);

 

2.16 int YW_Restore(int BlockAddr)

錢包Restore,參數如下:
BlockAddr:塊序号

int rt= rfidreader.ISO14443A.Restore(1);

 

2.17 byte[] YW_RequestAntiandSelect(byte requestMode,byte MultiMode)

尋卡,防沖突和選卡,如果正確,則返回卡号,此函數相當於執行瞭三個函數,YW_RequestCard, YW_AntiCollide, YW_CardSelect,參數如下:
requestMode:尋卡模式,有如下兩種值可用:
REQUESTMODE_ALL:尋所有的卡
REQUESTMODE_ACTIVE:尋激活的卡
MultiMode:遇到多張卡的處理方式,有兩種值可用
MULTIMODE_ONE:返回一張卡
MULTIMODE_ERR:返回錯誤
受影響的屬性值:
ATQA,SAK

int rt= rfidreader.ISO14443A.YW_RequestAntiandSelect(rfidreader.ISO14443A.REQUESTMODE_ACTIVE, rfidreader.ISO14443A.MULTIMODE_ONE);

 

2.18 int YW_WriteM1MultiBlock( int StartBlock, int BlockNums, byte[] AllData)

寫多個數據塊,注意必須在同一個扇區,不能跨扇區, 參數如下 :
StartBlock:開始塊序号
BlockNums:要寫的塊數量
AllData:要寫入的數據,BlockNums*16字節

byte[] Data = new byte[32];
for(int i=0;i<32;i++)Data[i]=0xAA;
int rt= rfidreader.ISO14443A.YW_WriteM1MultiBlock(1,Data);

 

2.19 byte[] YW_ReadM1MultiBlock( int StartBlock, int BlockNums)

讀多個數據塊 ,,注意必須在同一個扇區,不能跨扇區 參數如下:
StartBlock:開始塊序号
BlockNums:要讀的塊數量

byte[] Data=rfidreader.ISO14443A.YW_ReadaBlock(1,2);

 

2.20 byte[] YW_TypeA_Reset( byte requestMode, byte MultiMode)

CPU卡複位,複位成功,返回複位信息,參數如下:
requestMode:尋卡模式,有如下兩種值可用:
REQUESTMODE_ALL:尋所有的卡
REQUESTMODE_ACTIVE:尋激活的卡
MultiMode:遇到多張卡的處理方式,有兩種值可用
MULTIMODE_ONE:返回一張卡
MULTIMODE_ERR:返回錯誤

byte[] CPUResetData= rfidreader.ISO14443A.YW_TypeA_Reset(rfidreader.ISO14443A.REQUESTMODE_ACTIVE, rfidreader.ISO14443A.MULTIMODE_ONE);

 

2.21 byte[] YW_TypeA_COS( byte[] COS)

CPU卡執行COS指令,返回執行COS的結果 ,參數如下:
COS:COS指令byte數組

byte[] cos=new byte[5];//獲取8字節随機數
cos[0]=0;
cos[1]=0x84;
cos[2]=0;
cos[3]=0;
cos[4]=8;
byte[] CPUData= rfidreader.ISO14443A.YW_TypeA_COS(cos);

 

2.22 byte[] YW_UltraLightRead( int BlockID)

UltraLight卡讀數據塊, 參數如下:
BlockID:塊序号

byte[] Data=rfidreader.ISO14443A.YW_UltraLightRead(1);

 

2.10 int YW_UltraLightWrite( int BlockID, byte[] BlockData)

UltraLight寫數據塊, 參數如下:
BlockID:塊序号
BlockData:要寫入的數據,4字節

byte[] Data = new byte[4];
for(int i=0;i<4;i++)Data[i]=0xAA;
int rt= rfidreader.ISO14443A.YW_UltraLightWrite(1,Data);

 

3、PSAM,類名:PSam,功能:操作PSAM卡

類(lèi):PSam的屬(shǔ)性:

屬性名 類型(類名) 名稱 備注
PSamIndex byte PSAM卡序号 每個讀卡器最多帶3個PSAM卡,依次爲1,2,3,指定一個操作

 

類PSam的方法:

 

3.1 int YW_SAM_Baud(byte BaudIndex)

指定PSAM卡波特率, 參數如下:
BaudIndex:波特率序号,從0到9

int rt=rfidreader.PSAM.YW_SAM_Baud(0);

 

3.2 byte[] YW_SAM_Reset()

PSAM卡複位,成功返回複位信息:

byte[] PsamReset=rfidreader.PSAM.YW_SAM_Reset();

 

3.3 byte[] YW_SAM_Reset_Ex(byte SAMVoltage)

含電壓選擇的PSAM卡複位,成功返回複位信息,, 參數如下 :
SAMVoltage:SAM卡電壓,0爲3.3V, 1爲5V

byte[] PsamReset=rfidreader.PSAM.YW_SAM_Reset_Ex(0);

 

3.4 byte[] YW_SAM_COS(byte[] COS)

PSAM卡執行COS,成功返回結果信息,, 參數如下:
COS:SAM卡COS指令

byte[] cos=new byte[5];//獲取8字節随機數
cos[0]=0;
cos[1]=0x84;
cos[2]=0;
cos[3]=0;
cos[4]=8;
byte[] SAMData= rfidreader.PSAM.YW_SAM_COS(cos);

 

3.5 int YW_SAM_PPSBaud(byte BaudIndex)

指定PSAM卡PPS波特率, 參數如下:
BaudIndex:波特率序号,從0到9

int rt=rfidreader.PSAM.YW_SAM_PPSBaud(0);

 

3.6 int YW_SAM_PPSBaud_Ex(byte BaudIndex, byte Protocol))

帶參數指定PSAM卡PPS波特率, 參數如下:
BaudIndex:波特率序号,從0到9
Protocol:指定T=0,T=1協議

int rt=rfidreader.PSAM.YW_SAM_PPSBaud_Ex(0,0);

 

4、ID2Card,類名:id2card,功能:操作身份證卡

類(lèi):id2card的方法:

4.1 byte[] YW_ChinaIDV2_RequestCardNo()

獲(huò)取身份證卡的卡号,不是身份證号碼(mǎ)

rfidreader.ReaderHardware.YW_SearchCardMode(rfidreader.ReaderHardware.SEARCHCARDMODE_14443B);
byte [] idcardNo=rfidreader.ID2Card.YW_ChinaIDV2_RequestCardNo();

 

RFID讀寫器,SDK,IC卡讀卡器,開發包,二次開發,智能卡讀卡器,RFID讀卡器,CPU卡讀寫器,讀卡模塊
北京友我科技有限公司 版權所有 (C)2015-2015
客戶服務中心信箱:coodor#126.com(将#改爲@).客戶服務MSN: coodor#126.com(将#改爲@)
熱線直撥: 010-57049038 18910685939 QQ: 896163157,1403463073
京ICP備14016005号
微信掃一掃聯系我們

微信掃一掃聯系我們

友我科技


1
RFID讀寫器産品手冊下載
2
讀寫器開發SDK下載
3
WEB讀卡器開發指南
4
Windows讀卡器開發指南
5
Android讀卡器開發指南
6
Wince讀卡器開發指南
7
PLC讀卡器開發指南
8
Linux讀卡器開發指南
9
單片機讀卡器開發指南
10
PCSC讀卡器開發指南