NFC的讀寫卡模式 前台排程系統

2021-09-24 17:15:25 字數 3209 閱讀 9049

在這節內容中,我們為大家介紹一下nfc的讀寫卡模式的開發。 

讀寫卡模式是通過手機對nfc標籤卡資訊經行讀寫操作,但是,在使用前,我們應該去檢查一下設定和新增一些許可權。 

在這裡我建議大家將nfc的一些基礎操作放入到乙個nfcbaseactivity中,這樣,我們在使用時就不需要每次都經行重複的操作。 

1、檢測nfc狀態

public int nfcadapterinitialize()  else 

}return 1;

}

private nfcadapter nfcadapter;

private nfcmanager nfcmanager;

private pendingintent pendingintent;

private intentfilter intentfilters;

private string mtechlist;

private void nfcinitialization() catch (intentfilter.malformedmimetypeexception e)

//將我們的意圖放入到陣列中(在我的案例中,intentfilter1其實是沒有使用的)

intentfilters=new intentfilter;

//指定過濾標籤,這裡填入null就好

mtechlist=null;

}

這裡我們初始化了前台排程系統的一些引數,下面我們看一下怎麼啟用前台排程系統

//在activity不可見的時候我們關閉前台排程

@override

protected void onpause()

//在activity顯示的時候,我們讓nfc前台排程系統處於開啟狀態

@override

protected void onresume()

protected void onnewintent(intent intent) 

public static string getuid(tag tag)

return stringbuffer.tostring();

}

public static ndefmessage ge***efmessage(intent intent)
這是一些頭函式代表的含義 

接下來我們獲取一下nfc中位元組流 

byte bytes=records[0].getpayload(); 

然後我們來判斷一下ndef的型別records[0].gettype(); 

在ndefrecord定義了

public static final byte rtd_alternative_carrier ;

public static final byte rtd_handover_carrier ;

public static final byte rtd_handover_request l;

public static final byte rtd_handover_select ;

public static final byte rtd_smart_poster ;

public static final byte rtd_text ;

public static final byte rtd_uri ;

這些格式。rtd_text 是文字格式,rtd_uri是可以直接呼叫系統。這是比較常用的兩個,其中uri又可以指定這些型別

public static final short tnf_absolute_uri = 3;//絕對uri

public static final short tnf_empty = 0;

public static final short tnf_external_type = 4;

public static final short tnf_mime_media = 2;

public static final short tnf_unchanged = 6;

public static final short tnf_unknown = 5;

public static final short tnf_well_known = 1;//已知型別,ndef論壇定義

若我們解析的資料僅為text型別時,只需要將位元組的第一位取出,判斷編碼格式,其他位按照指定編碼進行解析

public static  string parsewellkonwnurirecord(ndefmessage message)
rtd_uri 方式和讀取字串類似,只是沒有首位的編碼位;tnf_well_known 型別時,表示資料為已知型別,從uri_prefix_map中獲取首位對應的字串即可。

以上就是nfc的讀卡模式,下面我們來說一下nfc的寫入模式 

其實nfc的寫卡模式與nfc的讀卡模式是相似的。 

首先我們需要將資訊準備好!如uri,或text資訊 

然後我們建立乙個 ndefrecord record=new ndefrecord(ndefrecord.tnf_well_known, ndefrecord.rtd_text, new byte[0], payload); 

ndefrecord.tnf_well_known:表示已知資料型別 

ndefrecord.rtd_text:為指定資料的格式 

payload:為準備好的位元組資料 

然後就可以生成乙個ndefrecord,在將多個或乙個ndefrecord放入ndefmessage中

new ndefmessage(record,arrrecord);
然後我們在onnewintent,獲取到ndef物件ndef ndef=ndef.get(gettag());

經行提交:ndef.connect();,接下來判斷是否nfc標籤的標籤是否可以寫入

if (ndef.getmaxsize() < message.getbytearraylength())else if (ndef==null)

ndef.writendefmessage(message);

NFC標籤的讀寫

最近公司要求完成乙個利用nfc標籤管理倉庫庫存的乙個iot專案,要求手機從伺服器獲取的資料後,將資料寫入nfc標籤中。其實主要的核心還是利用讀卡器模式對nfc標籤的讀寫。具體如下 1.許可權的配置 android name android.permission.nfc android name an...

sd卡的讀寫

sd卡全稱為 secrue digital memory card,具有輕巧 可加密 傳輸速度高 適用於手持裝置使用等優點。二 匯流排介面 sd需要高速讀寫,同時也要使手持等嵌入式裝置能方便使用,特設有兩個訪問介面中 sd 模式介面和spi 介面。sd卡在上電初期,卡主控通過檢測引腳 dat3 來決...

CPU卡的讀寫

一般來說,對儲存卡和邏輯加密卡操作,使用接觸式ic 用讀寫器 對 cpu卡使用 cpu卡讀寫器。所謂 通用讀卡器 是指它可以對大多數流行的儲存卡和邏輯加密卡操作。而 cpu卡由於有 iso iec 7816.3 4 的規範,其通訊協議 命令格式都是相容的,被看作是一種卡。當然,也有將 通用讀卡器 與...