Java調(diào)用IC卡讀卡器的DLL一般有以下2種方式:
1.使用JNative第三方庫調(diào)用IC卡讀卡器dll的接口.
2.使用JNI調(diào)用IC卡讀卡器dll的接口.
JNative調(diào)用IC卡讀卡器dll很方便,只要知道接口名稱和參數(shù)類型即可調(diào)用, 缺點(diǎn)是僅支持32位的程序, 不支持64位。
JNI調(diào)用IC卡讀卡器的DLL,既支持64位程序也支持32位程序, 調(diào)用也非常方便,下面將介紹JNI調(diào)用IC卡讀卡器DLL的方式。

對于經(jīng)常使用的普通IC卡為例, 首先聲明相關(guān)的api接口:
public native int YW_USBHIDInitial();
public native int YW_USBHIDFree();
public native int YW_Buzzer(int ReaderID,int Time_ON, int Time_OFF, int Cycle);
public native int YW_Led(int ReaderID,int LEDIndex, int Time_ON, int Time_OFF, int Cycle, int LedIndexOn);
public native int YW_AntennaStatus(int ReaderID,boolean Status);
public native int YW_SearchCardMode(int ReaderID,int Mode);
public native int YW_RequestCard(int ReaderID,int RequestMode, short CardType[]);
public native int YW_AntiCollide(int ReaderID, byte LenSNO[], byte SNO[]);
public native int YW_CardSelect(int ReaderID,byte LenSNO, byte SNO[]);
public native int YW_DownLoadKey(int ReaderID,int KeyIndex, byte Key[]);
public native int YW_KeyDown_Authorization(int ReaderID,int KeyMode, int BlockAddr, byte KeyIndex);
public native int YW_KeyAuthorization(int ReaderID,int KeyMode, int BlockAddr, byte[]Key);
public native int YW_ReadaBlock(int ReaderID,int BlockAddr, int LenData, byte pData[]);
public native int YW_WriteaBlock(int ReaderID,int BlockAddr, int LenData, byte pData[]);
public native int YW_Purse_Initial(int ReaderID,int BlockAddr, int IniMoney);
public native int YW_Purse_Read(int ReaderID,int BlockAddr, int Money[]);
public native int YW_Purse_Decrease(int ReaderID,int BlockAddr, int Decrement);
public native int YW_Purse_Charge(int ReaderID,int BlockAddr, int Charge);
public native int YW_CardHalt(int ReaderID);
public native int YW_Restore(int ReaderID,int BlockAddr);
public native int YW_Transfer(int ReaderID,int BlockAddr);
public native int YW_AntiCollideAndSelect(int ReaderID,byte ReturnMode, byte CardMem[], byte SNLen[], byte SN[]);
然后靜態(tài)裝載dll,64位程序裝載64位的dll,32位裝載32位的dll。
static {
System.loadLibrary("YW60X-32");
}
經(jīng)過以上聲明后,就可以直接調(diào)用接口了,如:
YOWORFID rfidreader = new YOWORFID();
rfidreader.YW_USBHIDInitial();
int rt =0;
rt =rfidreader.YW_RequestCard(ReaderID,Requestmode,Cardtype);
rt = rfidreader.YW_AntiCollide(ReaderID,LenSn,CardNo);
HexToStr(CardNo,LenSn[0]);
rt =rfidreader.YW_CardSelect(ReaderID,LenSn[0],CardNo);
rt =rfidreader.YW_KeyAuthorization(ReaderID,96,4,Key);
System.out.printf("KeyAuthorization=%d",rt);System.out.println();
rt =rfidreader.YW_ReadaBlock(ReaderID,4,16,BlockData);
System.out.printf("YW_ReadaBlock=%d",rt);System.out.println();
if(rt>0){HexToStr(BlockData,16);}
rfidreader.YW_Led(ReaderID,1,1,1,3,0);
rfidreader.YW_USBHIDFree();
以下java代碼例子包含了讀卡和寫卡的,可以使用32位或者64的dll,Java JNI調(diào)用IC卡讀卡器例程
全年征稿/資訊合作
聯(lián)系郵箱:137230772@qq.com
版權(quán)與免責(zé)聲明
1、凡本網(wǎng)注明"來源:包裝印刷網(wǎng)"的所有作品,版權(quán)均屬于包裝印刷網(wǎng),轉(zhuǎn)載請必須注明包裝印刷網(wǎng),http://www.530775.com/。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
2、企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
3、本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。
4、如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
實(shí)驗(yàn)室小型凍干機(jī)廠家
型號:HFD-15食品冷凍干燥機(jī)廠家
型號:HFD-1小型凍干設(shè)備廠家
型號:HFD-8原位凍干機(jī)廠家直銷
型號:ZLGJ-10中試蟲草凍干機(jī)廠家
型號:ZLGJ-50