對安卓工程師來說,在安卓下使用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讀寫器安卓開發指南
全年征稿/資訊合作
聯系郵箱:137230772@qq.com
版權與免責聲明
1、凡本網注明"來源:包裝印刷網"的所有作品,版權均屬于包裝印刷網,轉載請必須注明包裝印刷網,http://www.ezistim.com/。違反者本網將追究相關法律責任。
2、企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
3、本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
4、如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
?PDS805壓力變送器測量液體氣體壓力
型號:PDS805GH-1DS03-A1DN供應3051GP報價
紅瑤紅薯干加工全套設備流水線價格
型號:MC-LSX番薯清洗愈合糖化流水線廠家
蛋白類食品的檢測快速粘度分析儀
型號:HYM-5280