我有一個實作藍牙服務器的小型設備和一個 JS 頁面,我在 Chrome 上打開它來連接和操作一些設備特性。由于我仍在使用服務器代碼,因此我不斷更改/添加服務和特性,并注意到 Chrome 仍然顯示我的舊版本(實際上,更像是新舊版本的模糊混合)。像我的手機這樣的其他設備顯示出新的特性。
如何命令 Chrome 重新發現服務并洗掉其快取?我試圖只定義服務更改特征但沒有幫助,然后嘗試在連接時通知客戶端 0x0000 和 0xFFFF 值(假設這會使整個句柄范圍無效)但什么也沒發生。
另外 - Chrome 將什么作為設備名稱?(如果有多個“名稱”,我指的是掃描視窗中顯示的內容)。我嘗試在“aioble.advertise()”函式中設定名稱,并將其設定在設備名稱特征中(通用訪問服務下的 0x2A00),兩者都沒有更改值。它仍然顯示為“ESP32”,我認為這是某種默認值。
有人暗示我在 Chrome/Android/iPhone/etc 之間實作的藍牙規范不同。所以我希望得到 Chrome 如何實作服務更改功能的答案?作為服務器,我應該怎么做才能命令客戶端重新獲取服務資料?
謝謝!
uj5u.com熱心網友回復:
我查看了 Web 藍牙草案社區報告,最后更新于 2022 年 6 月 9 日。第6.6.5 節。回應服務更改描述了 Web 藍牙應該如何處理服務更改事件。
但根據實施狀態,目前尚未在任何平臺上實施服務更改事件。
您可以在他們的 Github 頁面上打開一個問題以獲取更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/504920.html
