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

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


咨詢
建站咨詢
