新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSTag讀寫
場景介紹

10年積累的網(wǎng)站設(shè)計、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有江干免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
應(yīng)用或其他模塊可以通過接口訪問多種協(xié)議或技術(shù)的Tag卡片。
接口說明
| 類名 | 接口名 | 功能描述 |
|---|---|---|
| TagInfo | getTagId() | 獲取當(dāng)前 Tag 的 ID。 |
| getTagSupportedProfiles() | 獲取當(dāng)前 Tag 支持的協(xié)議或技術(shù)。 | |
| isProfileSupported(int profile) | 判斷 Tag 是否支持指定的協(xié)議或技術(shù)。 | |
| TagManager | getTagInfo() | 獲取標(biāo)簽信息。 |
| connectTag() | 建立與 Tag 設(shè)備的連接。 | |
| reset() | 重置與 Tag 設(shè)備的連接,同時會把寫 Tag 的超時時間恢復(fù)為默認(rèn)值。 | |
| isTagConnected() | 判斷與 Tag 設(shè)備是否保持連接。 | |
| setSendDataTimeout(int timeout) | 設(shè)置發(fā)送數(shù)據(jù)到 Tag 的超時時間,單位是 ms。 | |
| getSendDataTimeout() | 查詢發(fā)送數(shù)據(jù)到 Tag 設(shè)備的超時時間,單位是 ms。 | |
| sendData(byte[] data) | 寫數(shù)據(jù)到 Tag 設(shè)備中。 | |
| checkConnected() | 檢查 Tag 設(shè)備是否已連接。 | |
| getMaxSendLength() | 獲取發(fā)送數(shù)據(jù)的最大長度。在發(fā)送數(shù)據(jù)到 Tag 設(shè)備時,用于查詢最大可發(fā)送數(shù)據(jù)的長度。 | |
| IsoDepTag | IsoDepTag(TagInfo tagInfo) | 根據(jù)分發(fā) Tag信息獲取 IsoDep 類型 Tag 標(biāo)簽對象。 |
| getHiLayerResponse() | 獲取基于 NfcB 技術(shù)的 IsoDep 類型 Tag 的高層響應(yīng)內(nèi)容。 | |
| getHistoricalBytes() | 獲取基于 NfcA 技術(shù)的 IsoDep 類型 Tag 的歷史字節(jié)內(nèi)容。 | |
| NfcATag | getInstance(TagInfo tagInfo) | 根據(jù)分發(fā) Tag 信息獲取 NfcA 標(biāo)簽對象。 |
| getSak() | 獲取 NfcA 類型 Tag 的 SAK。 | |
| getAtqa() | 獲取 NfcA 類型 Tag 的 ATQA。 | |
| NfcBTag | getInstance(TagInfo tagInfo) | 根據(jù)分發(fā) Tag 信息獲取 NfcB 標(biāo)簽對象。 |
| getRespAppData() | 獲取 NfcB 標(biāo)簽對象的應(yīng)用數(shù)據(jù)。 | |
| getRespProtocol() | 獲取 NfcB 標(biāo)簽對象的協(xié)議信息。 | |
| NdefTag | getNdefMessage() | 獲取當(dāng)前連接的 NDEF Tag 設(shè)備的 NDEF 信息。 |
| getNdefMaxSize() | 獲取最大的 NDEF 信息尺寸。 | |
| getTagType() | 獲取 NDEF Tag 設(shè)備類型。 | |
| readNdefMessage() | 從當(dāng)前連接的 NDEF Tag 設(shè)備讀取 NDEF 信息。 | |
| writeNdefMessage(NdefMessage msg) | 寫 NDEF 信息到當(dāng)前連接的 NDEF Tag 設(shè)備。 | |
| canSetReadOnly() | 檢查 NDEF Tag 設(shè)備是否可被設(shè)置為只讀。 | |
| setReadOnly() | 設(shè)置 NDEF Tag 設(shè)備為只讀。 | |
| isNdefWritable() | 判斷 NDEF Tag 設(shè)備是否可寫。 | |
| MifareClassicTag | getInstance(TagInfo tagInfo) | 根據(jù)分發(fā) Tag 信息獲取 MifareClassic 標(biāo)簽對象。 |
| getMifareType() | 獲取 MifareClassic Tag 設(shè)備的 Mifare 類型。 | |
| getTagSize() | 獲取 MifareClassic Tag 設(shè)備的尺寸。 | |
| getSectorsNum() | 獲取 MifareClassic Tag 設(shè)備內(nèi)所有扇區(qū)數(shù)。 | |
| getBlocksNum() | 獲取 MifareClassic Tag 設(shè)備內(nèi)所有塊數(shù)。 | |
| getBlocksNumForSector(int sectorId) | 獲取 MifareClassic Tag 設(shè)備內(nèi)一個扇區(qū)的塊數(shù)。 | |
| getSectorId(int blockId) | 用塊ID獲取 MifareClassic Tag 設(shè)備內(nèi)扇區(qū)號。 | |
| getFirstBlockId(int sectorId) | 獲取 MifareClassic Tag 設(shè)備內(nèi)特定扇區(qū)的第一個塊 ID。 | |
| authenSectorUseKey(int sectorId, byte[] key, byte keyType) | 用密鑰鑒權(quán) MifareClassic Tag 設(shè)備內(nèi)特定扇區(qū)。 | |
| readBlock(int blockId) | 讀取 MifareClassic Tag 設(shè)備內(nèi)特定塊內(nèi)容。 | |
| writeBlock(int blockId, byte[] data) | 在 MifareClassic Tag 設(shè)備內(nèi)特定塊寫內(nèi)容。 | |
| incBlock(int blockId, int value) | 在 MifareClassic Tag 設(shè)備內(nèi)特定塊的內(nèi)容加上一個值。 | |
| decBlock(int blockId, int value) | 從 MifareClassic Tag 設(shè)備內(nèi)特定塊的內(nèi)容減去一個值。 | |
| restoreBlock(int blockId) | 把 MifareClassic Tag 設(shè)備內(nèi)特定塊的內(nèi)容移動到一個內(nèi)部的緩存區(qū)。 | |
| MifareUltralightTag | getInstance(TagInfo tagInfo) | 根據(jù)分發(fā) Tag 信息獲取 MifareUltralight 標(biāo)簽對象。 |
| getMifareType() | 獲取 MifareUltralight Tag 設(shè)備類型。 | |
| readFourPages(int pageOffset) | 從 MifareUltralight Tag 設(shè)備的特定頁數(shù)開始讀四頁。 | |
| writeOnePage(int pageOffset, byte[] data) | 在 MifareUltralight Tag 設(shè)備的特定頁數(shù)寫數(shù)據(jù)。 |
讀取卡片類型
- 從 Intent 中獲取 TagInfo,初始化 TagInfo 實例。
- TagInfo 實例調(diào)用 getTagSupportedProfiles()接口查詢當(dāng)前 Tag 支持的技術(shù)或協(xié)議類型。
- 調(diào)用 isProfileSupported(int profile)接口查詢是否支持 NfcA、IsoDep、MifareClassic 等類型。若支持,可使用 TagInfo 實例構(gòu)造 NfcATag、IsoDep、MifareClassic 等實例。
- 根據(jù)不同的 Tag 技術(shù)類型的實例,調(diào)用不同的API完成 Tag 的訪問。
// 從Intent中獲取TagInfo,初始化TagInfo實例
TagInfo tagInfo = getIntent().getParcelableExtra(NfcController.EXTRA_TAG_INFO);
// 查詢Tag設(shè)備支持的技術(shù)或協(xié)議,返回值為支持的技術(shù)或協(xié)議列表
int[] profiles = tagInfo.getTagSupportedProfiles();
// 查詢是否支持NfcA,若支持,構(gòu)造一個NfcATag
boolean isSupportedNfcA = tagInfo.isProfileSupported(TagManager.NFC_A);
if (isSupportedNfcA) {
NfcATag tagNfcA = NfcATag.getInstance(tagInfo);
}
// 查詢是否支持NfcB,若支持,構(gòu)造一個NfcBTag
boolean isSupportedNfcB = tagInfo.isProfileSupported(TagManager.NFC_B);
if (isSupportedNfcB) {
NfcBTag tagNfcB = NfcBTag.getInstance(tagInfo);
}
// 查詢是否支持IsoDep,若支持,構(gòu)造一個IsoDepTag
boolean isSupportedIsoDep = tagInfo.isProfileSupported(TagManager.ISO_DEP);
if (isSupportedIsoDep) {
IsoDepTag tagIsoDep = new IsoDepTag(tagInfo);
}
// 查詢是否支持NDEF,若支持,構(gòu)造一個NdefTag
boolean isSupportedNdefDep = tagInfo.isProfileSupported(TagManager.NDEF);
if (isSupportedNdefDep) {
NdefTag tagNdef = new NdefTag(tagInfo);
}
// 查詢是否支持MifareClassic,若支持,構(gòu)造一個MifareClassicTag
boolean isSupportedMifareClassic = tagInfo.isProfileSupported(TagManager.MIFARE_CLASSIC);
if (isSupportedMifareClassic) {
MifareClassicTag mifareClassicTag = MifareClassicTag.getInstance(tagInfo);
}
// 查詢是否支持MifareUltralight,若支持,構(gòu)造一個MifareUltralightTag
boolean isSupportedMifareUltralight = tagInfo.isProfileSupported(TagManager.MIFARE_ULTRALIGHT);
if (isSupportedMifareUltralight) {
MifareUltralightTag mifareUltralightTag = MifareUltralightTag.getInstance(tagInfo);
}
訪問 NfcA 卡片
- 調(diào)用 connectTag() 接口連接 Tag 設(shè)備。
- 調(diào)用 isTagConnected()接口查詢 Tag 設(shè)備連接狀態(tài)。
- 調(diào)用 sendData(byte[] data)接口發(fā)送數(shù)據(jù)到 Tag。
// 連接 Tag 設(shè)備,返回值為是否連接成功
boolean connSuccess = tagNfcA.connectTag();
// 查詢Tag連接狀態(tài)
boolean isConnected= tagNfcA.isTagConnected();
// 發(fā)送數(shù)據(jù)到Tag,返回值為Tag的響應(yīng)數(shù)據(jù)
byte[] data = {0x13, 0x59, 0x22};
byte[] response = tagNfcA.sendData(data);
訪問 NfcB 卡片
- 調(diào)用 connectTag() 接口連接 Tag 設(shè)備。
- 調(diào)用 isTagConnected() 接口查詢 Tag 設(shè)備連接狀態(tài)。
- 調(diào)用 sendData(byte[] data) 接口發(fā)送數(shù)據(jù)到 Tag。
// 連接Tag設(shè)備,返回值為是否連接成功
boolean connSuccess = tagNfcB.connectTag();
// 查詢Tag連接狀態(tài)
boolean isConnected= tagNfcB.isTagConnected();
// 發(fā)送數(shù)據(jù)到Tag,返回值為Tag的響應(yīng)數(shù)據(jù)
byte[] data = {0x13, 0x59, 0x22};
byte[] response = tagNfcB.sendData(data);
訪問 IsoDep 卡片
- 調(diào)用getTagInfo()接口獲取TagInfo對象。
- 調(diào)用connectTag()接口連接Tag設(shè)備。
- 調(diào)用isTagConnected()接口查詢Tag設(shè)備連接狀態(tài)。
- 調(diào)用sendData(byte[] data)接口發(fā)送數(shù)據(jù)到Tag。
// 連接Tag設(shè)備,返回值為是否連接成功
boolean connSuccess = tagIsoDep.connectTag();
// 查詢Tag連接狀態(tài)
boolean isConnected= tagIsoDep.isTagConnected();
// 發(fā)送數(shù)據(jù)到Tag,返回值為Tag的響應(yīng)數(shù)據(jù)
byte[] data = {0x13, 0x59, 0x22};
byte[] response = tagIsoDep.sendData(data);
訪問Ndef卡片
- 調(diào)用 getTagInfo()接口獲取 TagInfo 對象。
- 調(diào)用 connectTag()接口連接 Tag 設(shè)備。
- 調(diào)用 isTagConnected()接口查詢 Tag 設(shè)備連接狀態(tài)。
- 調(diào)用 sendData(byte[] data)接口發(fā)送數(shù)據(jù)到 Tag。
// 連接Tag設(shè)備,返回值為是否連接成功
boolean connSuccess = tagNdef.connectTag();
// 查詢Tag連接狀態(tài)
boolean isConnected = tagNdef.isTagConnected();
// 發(fā)送數(shù)據(jù)到Tag,返回值為Tag的響應(yīng)數(shù)據(jù)
byte[] data = {0x13, 0x59, 0x22};
byte[] response = tagNdef.sendData(data);
訪問 MifareClassic 卡片
- 調(diào)用 getTagInfo()接口獲取 TagInfo 對象。
- 調(diào)用 connectTag()接口連接 Tag 設(shè)備。
- 調(diào)用 isTagConnected()接口查詢 Tag 設(shè)備連接狀態(tài)。
- 調(diào)用 sendData(byte[] data)接口發(fā)送數(shù)據(jù)到 Tag。
// 連接Tag設(shè)備,返回值為是否連接成功
boolean connSuccess = mifareClassicTag.connectTag();
// 查詢Tag連接狀態(tài)
boolean isConnected = mifareClassicTag.isTagConnected();
// 發(fā)送數(shù)據(jù)到Tag,返回值為Tag的響應(yīng)數(shù)據(jù)
byte[] data = {0x13, 0x59, 0x22};
byte[] response = mifareClassicTag.sendData(data);
訪問 MifareUltralight 卡片
- 調(diào)用 getTagInfo() 接口獲取 TagInfo 對象。
- 調(diào)用 connectTag() 接口連接 Tag 設(shè)備。
- 調(diào)用 isTagConnected() 接口查詢 Tag 設(shè)備連接狀態(tài)。
- 調(diào)用 sendData(byte[] data) 接口發(fā)送數(shù)據(jù)到 Tag。
// 連接Tag設(shè)備,返回值為是否連接成功
boolean connSuccess = mifareUltralightTag.connectTag();
// 查詢Tag連接狀態(tài)
boolean isConnected = mifareUltralightTag.isTagConnected();
// 發(fā)送數(shù)據(jù)到Tag,返回值為Tag的響應(yīng)數(shù)據(jù)
byte[] data = {0x13, 0x59, 0x22};
byte[] response = mifareUltralightTag.sendData(data); 分享題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSTag讀寫
標(biāo)題來源:http://www.dlmjj.cn/article/coggphc.html


咨詢
建站咨詢
