Android NFC讀卡以及NFC的三種模式

2021-10-01 13:20:41 字數 2073 閱讀 6385

第一步新增許可權:

第二步:在需要讀取卡內容的地方寫下面的內容

@suppresslint("newapi")

@override

protected void onresume()

@suppresslint("newapi")

@override

protected void onpause()

@override

protected void onnewintent(intent intent) else

} catch (unsupportedencodingexception e) catch (exception e)

}public class nfcutils

/*** 檢查nfc是否開啟

*/public static nfcadapter nfccheck(activity activity) else

}return mnfcadapter;

}/**

* 初始化nfc設定

*/public static void nfcinit(activity activity) catch (intentfilter.malformedmimetypeexception e)

mintentfilter = new intentfilter;

mtechlist = null;

}/**

* 讀取nfc的資料

* 接下來要詳細的介紹android是如何處理ndef格式的標籤的。當android裝置掃瞄到包含ndef格式資料的nfc標籤時,

* 它會解析該訊息,並嘗試搞清楚資料的mime型別或uri標識。首先系統會讀取訊息(ndefmessage)中的第一條ndefrecord,來判斷如何解釋整個ndef訊息(乙個ndef訊息能夠有多條ndef記錄)。 

* 在格式良好的ndef訊息中,第一條ndefrecord包含以下字段資訊:

* 1)3-bit tnf(型別名稱格式)  指示如何解釋可變長度型別字段,在下表1中介紹有效值。

*/public static string readnfcfromtag(intent intent) throws unsupportedencodingexception

}return "";

}/**

* 往nfc寫入資料

*/@requiresapi(api = build.version_codes.lollipop)

public static void writenfctotag(string data, intent intent) throws ioexception, formatexception ;

ndefmessage ndefmessage = new ndefmessage(records);

ndef.writendefmessage(ndefmessage);

}/**

* 讀取nfcid

*/public static string readnfcid(intent intent) throws unsupportedencodingexception

/*** 將位元組陣列轉換為字串

*/private static string bytearraytohexstring(byte inarray) ;

string out = "";

for (j = 0; j < inarray.length; ++j)

return out;

}}

第三步設定過濾器:

過濾器的設定(三種模式):

第一種模式:優先順序最高。先判斷是不是ndef_discovered格式的資料,再判斷ndef_discovered資料的型別,只有與過濾器中兩個條件都要求的一致,才會選擇滿足的activity 來處理。

第二種模式:優先順序次於第一種模式。滿足tech_discovered的設定,才會選擇滿足的activity 來處理。

第二種模式:優先順序最低。只要滿足nfc規範中的任一種則都就會響應。

r與 n以及 r n的區別

r是回車,英文是carriage return,表示使游標下移一格。n是換行,英文是new line,表示使游標到行首。r n表示回車換行。1 n軟回車 在windows 中表示換行且回到下一行的最開始位置。相當於mac os 裡的 r 的效果。在linux unix 中只表示換行,但不會回到下一行...

N皇后解法以及位運算優化

觀察棋盤,要求皇后之間不能處在同行同列同一條斜線,求使得每行都有乙個皇后的放置方法共有多少種。每嘗試放置乙個皇后,都可以把該位置所在的行 列標號用乙個陣列標記,含義表示該行該列已經被占用,同時所在斜列也要進行標記。所在斜線有左斜線和右斜線兩種,畫個 釋一下。舉個栗子,對於 2,0 這個點,他所在左斜...

獲得前n天和後n天日期以及獲得前n月和後n月的日期

一 獲得前n天和後n天日期 1 countdays 2 代表過去 代表將來 2function countdays day 14if strday 10 17 alert stryear strmonth strday 將計算的時間賦值給defaultdate 1819 2021 2223 2425...