作者:吉金濤
前言
随着物聯網時代的興起,人們對于生活的便捷和服務智能家具的要求也逐漸增高,萬物互聯的時代即将到來。接下來我便進入正題,講講藍牙和wifi的NFC碼流的燒制。
一、NFC的資料結構
首先我們先看下NFC的完整資料結構
示例 (藍牙):0336D2024268772001004800323845390081090037200685031417910306FC58FAA2ECB114114643353846414132454342311701029112464335384641413245434231FC58FAA2ECB1
示例 (wifi):0336D202316877200100480032394851008109005720068504141791040600BFAFF22192140C303042464146463232313932170100910101
( 注:藍牙項目MAC位址後面的固定值修改為:1411,wifi裝置保持不變:140C)
- 藍牙和wifi 資料結構中加粗的部分為變化值,根據自己業務場景而變化,其他部分為固定值 ,下面拿藍牙的資料舉例:
- 32384539:這個是Product ID (十六進制的轉化)
- FC58FAA2ECB1: 這個是MAC位址
- 464335384641413245434231:這個是MAC十六進制的轉化 (轉換的時候不要加冒号)
- 464335384641413245434231FC58FAA2ECB1:這個是MAC十六進制轉化 + MAC位址 (注:此處有個問題就是,藍牙和wifi項目,生成的碼流,後面有的需要拼接,有的是不需要拼接,大家可以進行嘗試,大家以拿到的碼流格式為主,替換相應的部分,主要看DP平台申請的碼流)
ASCII碼(十六進制轉換)(ASCll碼線上工具)

如何擷取裝置的MAC位址?
方法一
- 可以通過華為智慧生活連接配接到裝置,在設定裡的裝置資訊裡檢視
方法二
- 在華為應用市場搜尋“BLE調試助手 ”
- 打開”BLE調試助手“,此時會顯示所有掃描到的藍牙裝置,MAC位址如圖所示(紅色箭頭指向的就是MAC位址)
二、寫入NFC标簽資料
1. 安裝HW AirLink測試工具
下載下傳AirLink安裝包并安裝
AirLink測試工具下載下傳
寫入NFC碼流
- 首先準備好需要寫入的NFC資料内容(NFC标簽碼流大家可以到華為BP平台的标簽管理,擷取NFC的标簽碼流)
- 我這邊提供一份碼流,進行參照:
0336D2024268772001004800323845390081090037200685031417910306FC58FAA2ECB1140c4643353846414132454342311701029112464335384641413245434231FC58FAA2ECB1(注:碼流最後加粗的部分,根據項目生成的碼流為準,有的碼流,需要拼接後面的MAC十六進制轉和MAC位址,有的碼流不需要,切記,如若出現拉不起原子化服務,可以嘗試後面不拼接MAC十六進制轉和MAC位址)
注意事項:
- 我們拿到NFC資料内容後,此時的碼流是平台自動生成的預設碼流,不能直接使用,需要根據自己的項目(Product ID和裝置的MAC位址)進行十六進制轉換,替換平台預設的碼流(加粗的地方為替換部分)
步驟1. 啟動AirLink工具;
步驟2. 點選”add“,輸入邀請碼,b4zd8bz3,點選”OK“;
步驟3. 點選NFC選項,進入NFC讀寫界面,選擇”NFC WRITE“選項;
步驟4. 寫入NFC資料,需要勾選”byte code“選項,點選”置入緩存區“;
注意事項 !!!
- NFC資料内容前兩個位元組‘’ 03XX‘’要去除,将從D2XXXX開始,全部複制到輸入框
列如:申請的碼流“0336D202xxxxxxxFC58FAA2ECB1”,應輸入“D202****xxxxxxxFC58FAA2ECB1**”否則寫入失敗
- 我們第一次用AirLink工具燒制的時候,有機率出現,碼流一直寫入不成功,這時候我們隻需要不勾選**”byte code“**選項,然後進行燒制,(如果還是彈寫入失敗,多試幾次)就會顯示寫入成功,但是寫入的碼流是錯誤的(這個方法主要解決碼流寫入不成功問題)
-
接下來我們隻需要用 HiDotApplication工具把NFC标簽燒錄為空即可(具體看第三部分),然後用AirLink工具勾選**”byte code“**選項,把碼流重新寫入就可以了。
注:大家每次燒制成功後,推薦用TagInfo工具檢視下碼流,是否燒制正确
三、燒空NFC标簽資料
前置條件:下載下傳并安裝HiDotApplication工具 ,工具已經放置在下放資源處了,需要的童鞋們自取哦
步驟1. 打開HiDotApplication工具 ,點選WRITE - GIDOT;
步驟2. 點選進來後,把HiDot Version下的滑動條,滑動到 HIDOT 2.0,Input HiDot Record下的輸入框為空不填,然後點選WRITE按鈕,會出現Attach your tag to your handset! 提示然後把标簽貼在手機上,出現 write success 表示燒制成功
注意: 此APP也可以燒制NFC标簽,但是有兩項注意事項
- 此APP燒制新的(從未燒制過的)NFC标簽時,燒制過程中,有時候會直接跳轉到此APP的首頁,燒制不成功,這時候就需要,本文的第二部分的AirLink工具 進行燒制。
- 如果你的NFC标簽之前已經燒制過,然後用此APP重新燒制碼流時,需要把碼流前五個位元組**“D202426877”**去除,然後燒制,如果不去除,燒制的碼流就會出現錯誤 (詳情請看第四部分)
例如:燒制的碼流“D202426877200100xxxxxxxFC58FAA2ECB1”,應輸入“200100****xxxxxxxFC58FAA2ECB1**”
注:HiDotApplication工具 ,大家可以把它,作為燒空NFC标簽工具使用,如果要寫入NFC碼流推薦使用,AirLink工具
四、檢視NFC碼流
前置條件:下載下傳并安裝TagInfo工具 工具已經放置在下放資源處了,需要的童鞋們自取哦
步驟1. 打開TagInfo NFC檢視工具 一直往右滑,下方出現Start按鈕提示,然後點選
步驟2. 此頁面往下滑,然後點選 I Accept 按鈕
步驟3. 進入APP頁面後,不用點選 “擷取Google Play服務”,隻需要點選背景,讓他關閉即可,然後把NFC放到手機上,就可以讀取NFC上寫入的碼流了
步驟4. APP讀取碼流後,點選NDEF 即可檢視碼流,(紅線處為 産品的Product ID和MAC位址)大家根據自己的項目對照是否正确。
解答:現在我來說一下,第三部分用HiDotApplication工具 燒制之前燒錄過得NFC标簽,為什麼要去掉碼流前五個位元組**“D202426877”**,我給大家詳細解答下。
- 我們剛拿到新的NFC标簽(從未燒錄過的)我們用TagInfo工具 進行檢視,NDEF顯示為空,如圖
- 當我們寫入了NFC碼流後,我們用TagInfo工具 進行檢視,NDEF顯示為我們寫入的正确碼流(此碼流後面沒有拼接MAC十六進制轉和MAC位址,詳情請看本文第一部分,有詳細說明),如圖:
HarmonyOS - 标簽NFC碼流燒制 - 然後我們把NFC标簽用HiDotApplication工具燒空,用TagInfo工具 進行檢視,你就會發現NDEF 下的 NDEF message 裡有前五個位元組(我的了解是第一次燒錄的時候,NFC标簽會把前五個位元組進行了儲存) ,如若不删除前五個位元組的話,用HiDotApplication工具進行燒制的話,你就會發現NDEF 下的 Record 中編譯就會出現錯誤,多了前五個位元組,但是這個碼流是不能用的。(大家可以看上圖正确的碼流寫入進行對照)
總結
本文主要是講解如何使用工具燒錄NFC碼流和大家要注意的一些地方,希望這些能給你提供幫助,如果您能看到最後,還希望您能動動手指點個贊。
更多原創内容請關注:中軟國際 HarmonyOS 技術團隊
入門到精通、技巧到案例,系統化分享HarmonyOS開發技術,歡迎投稿和訂閱,讓我們一起攜手前行共建鴻蒙生态。
附件連結
Taginfo.apk(https://ost.51cto.com/resource/2046)
HiDotApplication.apk(https://ost.51cto.com/resource/2045)