印前設(shè)備 印刷機(jī)械 印后設(shè)備 裝訂設(shè)備 廣告設(shè)備 辦公設(shè)備 印刷機(jī)械配件 其它印刷相關(guān)器材 其它印刷設(shè)備
北京友我科技有限公司
暫無(wú)信息 |
閱讀:46發(fā)布時(shí)間:2025-1-5
對(duì)安卓工程師來(lái)說(shuō),在安卓下使用USB設(shè)備需要了解很多硬件的內(nèi)容,這可能會(huì)導(dǎo)致工程周期的延長(zhǎng)或者app的不穩(wěn)定。為了將這種風(fēng)險(xiǎn)降到,友我科技發(fā)布了NFC讀寫(xiě)器在安卓下的sdk,使用NFC讀寫(xiě)器的類(lèi)接口,安卓工程師就可以直接調(diào)用NFC讀寫(xiě)器了,簡(jiǎn)單可靠。
NFC讀寫(xiě)器的安卓庫(kù)文件為:yoworfidreader.jar
在ADT工程中導(dǎo)入yoworfidreader.jar庫(kù)文件,即可在工程中引用NFC讀寫(xiě)器的類(lèi)文件
在代碼中調(diào)用:
public usbreader rfidreader;
rfidreader = new usbreader();
這樣就創(chuàng)建了NFC讀寫(xiě)器的類(lèi)的實(shí)體,下面只要使用rfidreader的各種方法就可以了,以下為讀寫(xiě)M1卡的例子代碼:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_m1);
rbKeyA=(RadioButton) findViewById(R.id.rbkeya);
txtCardNo = (TextView) findViewById(R.id.txtcardno);
edtKey = (EditText) findViewById(R.id.edtkey);
edtKey.setText(""FFFFFFFFFFFF"");
edtBlockID = (EditText) findViewById(R.id.edtblock);
edtBlockID.setText(""1"");
edtData = (EditText) findViewById(R.id.edtdata);
edtData.setText(""11111111111111112222222222222222"");
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(""塊號(hào)必須是0-63"",M1.this);
return;
}
if(!MainActivity.ValidHexString(edtKey.getText().toString(), 6))
{
MainActivity.dialog(""密鑰必須是6字節(jié)16進(jìn)制"",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(""卡號(hào):"" + 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(""密鑰認(rèn)證錯(cuò)誤"",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(""塊號(hào)必須是0-63"",M1.this);
return;
}
if(!MainActivity.ValidHexString(edtKey.getText().toString(), 6))
{
MainActivity.dialog(""密鑰必須是6字節(jié)16進(jìn)制"",M1.this);
return;
}
if(!MainActivity.ValidHexString(edtData.getText().toString(), 16))
{
MainActivity.dialog(""數(shù)據(jù)必須是16字節(jié)16進(jìn)制"",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(""卡號(hào):"" + 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(""密鑰認(rèn)證錯(cuò)誤"",M1.this);
return;
}
byte[] Data = MainActivity.HexStringtoBytes(edtData.getText().toString());
if(MainActivity.rfidreader.ISO14443A.YW_WriteaBlock(BlockID, Data)>0)
{
MainActivity.dialog(""數(shù)據(jù)寫(xiě)入成功"",M1.this);
MainActivity.rfidreader.ReaderHardware.YW_Buzzer(5, 5, 1);
}
else
MainActivity.dialog(""數(shù)據(jù)寫(xiě)入失敗"",M1.this);
}
});
}
}
支持安卓的NFC讀寫(xiě)器有YW-605系列和YW-607等
安卓NFC讀寫(xiě)器的在線開(kāi)發(fā)指南:NFC讀寫(xiě)器安卓開(kāi)發(fā)指南
包裝印刷網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ?
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
請(qǐng)輸入你感興趣的產(chǎn)品
請(qǐng)簡(jiǎn)單描述您的需求
請(qǐng)選擇省份