在安卓(Android)下如何选择和开发IC卡读卡器

2025-11-28 21:57:19

1、打开adt软件,新建一个Android工程。

在安卓(Android)下如何选择和开发IC卡读卡器

2、在菜单build path下引入IC卡读卡器android的开发包YowoRFIDreader.jar

在安卓(Android)下如何选择和开发IC卡读卡器

在安卓(Android)下如何选择和开发IC卡读卡器

3、在主界面中设计读写的界面,防止相应的控件

在安卓(Android)下如何选择和开发IC卡读卡器

4、开始写主程序了,在读和写按钮分别写入以下的程序:

Button button = (Button) findViewById(R.id.btnreadCard);

button.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

            txtCardNo.setText("");

            edtData.setText("");

             

            int BlockID = MainActivity.ValidInt( edtBlockID.getText().toString() , 63);

            if(BlockID<0)

            {

            MainActivity.dialog("块号必须是0-63",M1.this);

            return;

            }

             

            if(!MainActivity.ValidHexString(edtKey.getText().toString(), 6))

            {

            MainActivity.dialog("密钥必须是6字节16进制",M1.this);

            return;

            }

            if( MainActivity.rfidreader.ISO14443A.YW_RequestCard(MainActivity.rfidreader.ISO14443A.REQUESTMODE_ALL)<0)return;

             

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

             

            if(CardNo==null)return;

            txtCardNo.setText("卡号:" + MainActivity.bytesToHexString(CardNo));

             

            byte KeyMode=MainActivity.rfidreader.ISO14443A.Key_B;

            if(rbKeyA.isChecked())KeyMode=MainActivity.rfidreader.ISO14443A.Key_A;

            if(MainActivity.rfidreader.ISO14443A.YW_KeyAuthorization(KeyMode, BlockID, MainActivity.HexStringtoBytes( edtKey.getText().toString()))<0)

            {

            MainActivity.dialog("密钥认证错误",M1.this);

            return;              

            }

             

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

            if(Data==null)

            {

            MainActivity.dialog("读取块失败",M1.this);

            return;

            }

             

            edtData.setText(MainActivity.bytesToHexString(Data));

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

            }

});

Button button2 = (Button) findViewById(R.id.btnwritedata);

button2.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

            txtCardNo.setText("");

             

             

            int BlockID = MainActivity.ValidInt( edtBlockID.getText().toString() , 63);

            if(BlockID<0)

            {

            MainActivity.dialog("块号必须是0-63",M1.this);

            return;

            }

             

            if(!MainActivity.ValidHexString(edtKey.getText().toString(), 6))

            {

            MainActivity.dialog("密钥必须是6字节16进制",M1.this);

            return;

            }

             

            if(!MainActivity.ValidHexString(edtData.getText().toString(), 16))

            {

            MainActivity.dialog("数据必须是16字节16进制",M1.this);

            return;

            }              

             

            if( MainActivity.rfidreader.ISO14443A.YW_RequestCard(MainActivity.rfidreader.ISO14443A.REQUESTMODE_ALL)<0)return;

             

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

             

            if(CardNo==null)return;

            txtCardNo.setText("卡号:" + MainActivity.bytesToHexString(CardNo));

             

            byte KeyMode=MainActivity.rfidreader.ISO14443A.Key_B;

            if(rbKeyA.isChecked())KeyMode=MainActivity.rfidreader.ISO14443A.Key_A;

            if(MainActivity.rfidreader.ISO14443A.YW_KeyAuthorization(KeyMode, BlockID, MainActivity.HexStringtoBytes( edtKey.getText().toString()))<0)

            {

            MainActivity.dialog("密钥认证错误",M1.this);

            return;              

            }

             

            byte[] Data = MainActivity.HexStringtoBytes(edtData.getText().toString());

             

            if(MainActivity.rfidreader.ISO14443A.YW_WriteaBlock(BlockID, Data)>0)

            {

            MainActivity.dialog("数据写入成功",M1.this);

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

            }

            else

            MainActivity.dialog("数据写入失败",M1.this);

            }

});

}

5、写好后,编译,生成apk安装包,在手机上插上OTG数据线和IC卡读卡器YW-605HA或者NFC读写器YW-607,出现如下界面:

在安卓(Android)下如何选择和开发IC卡读卡器

6、点击读和写都显示成功

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢