¶Ô°²×¿¹¤³ÌʦÀ´Ëµ£¬ÔÚ°²×¿ÏÂʹÓÃUSBÉ豸ÐèÒªÁ˽âºÜ¶àÓ²¼þµÄÄÚÈÝ£¬Õâ¿ÉÄܻᵼÖ¹¤³ÌÖÜÆÚµÄÑÓ³¤»òÕßappµÄ²»Îȶ¨¡£ÎªÁ˽«ÕâÖÖ·çÏÕ½µµ½×îµÍ£¬ÓÑÎҿƼ¼·¢²¼ÁËNFC¶ÁдÆ÷ÔÚ°²×¿ÏµÄsdk£¬Ê¹ÓÃNFC¶ÁдÆ÷µÄÀà½Ó¿Ú£¬°²×¿¹¤³Ìʦ¾Í¿ÉÒÔÖ±½Óµ÷ÓÃNFC¶ÁдÆ÷ÁË£¬¼òµ¥¿É¿¿¡£
NFC¶ÁдÆ÷µÄ°²×¿¿âÎļþΪ£ºyoworfidreader.jar
ÔÚADT¹¤³ÌÖе¼Èëyoworfidreader.jar¿âÎļþ£¬¼´¿ÉÔÚ¹¤³ÌÖÐÒýÓÃNFC¶ÁдÆ÷µÄÀàÎļþ


ÔÚ´úÂëÖе÷Óãº
public usbreader rfidreader;
rfidreader = new usbreader();
ÕâÑù¾Í´´½¨ÁËNFC¶ÁдÆ÷µÄÀàµÄʵÌ壬ÏÂÃæÖ»ÒªÊ¹ÓÃrfidreaderµÄ¸÷ÖÖ·½·¨¾Í¿ÉÒÔÁË£¬ÒÔÏÂΪ¶Áд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(""¿éºÅ±ØÐëÊÇ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);
}
});
}
}
Ö§³Ö°²×¿µÄNFC¶ÁдÆ÷ÓÐYW-605ϵÁкÍYW-607µÈ
°²×¿NFC¶ÁдÆ÷µÄÔÚÏß¿ª·¢Ö¸ÄÏ£ºNFC¶ÁдÆ÷°²×¿¿ª·¢Ö¸ÄÏ