BLE 週邊模式的 Bluez:Android 無法擷取服務列表,iPhone 和 Win10 正常

BLE 週邊模式的 Bluez:Android 無法擷取服務列表,iPhone 和 Win10 正常

我嘗試讓 Raspberry Pi 3B+ 作為 BLE 週邊設備。

我在這裡下載了 bluez stack 的最新版本(5.50):https://git.kernel.org/pub/scm/bluetooth/bluez.git。我在 /test/ 目錄中執行提供的範例。

當我使用 python 2.7 或 python 3.5 在 root 下同時運行“example-advertisement”和“example-gatt-server”時,我可以看到帶有 Linux Mint、Win10、IOS 和 Android 設備的新 BLE 週邊設備。然而,儘管Linux、IOS和Win10成功連接並檢索服務和特徵列表,但Android(4.4、5.1或7.0,使用5種不同品牌的智慧型手機和平板電腦進行測試)無法連接到設備。

我看到了這個話題:https://raspberrypi.stackexchange.com/questions/90696/bluetooth-low-energy-gatt-services-not-found-on-android但我暫時沒有使用自己的應用程式。即使我們在 Play Store 上找到的各種 BLE 掃描應用程式也無法連接和檢索服務清單。

它似乎與 Raspberry Pi 特定硬體或軟體無關,因為我也嘗試過另一台單板電腦(Variscite DART-6UL,https://www.variscite.com/product/system-on-module-som/cortex-a7/dart-6ul-freescale-imx-6ul)並且我得到了完全相同的行為。

有人有主意嗎?

謝謝。

答案1

經過大量研究後我放棄了。 「nRF Connect」應用程式成功連接到我的裝置並檢索特徵列表,但並非總是如此: - 在某些Android 裝置上,我只需要點擊「連線」 - 在其他一些裝置上,我需要點擊「自動連線」 3 點子選單。

然而,許多其他應用程式根本無法連接,包括我的應用程序,無論有或沒有自動連接。

增加一些延遲(週邊發現和連接之間為 100 毫秒,連接狀態和服務發現之間為 100 毫秒)可以使某些設備成功連接,但不是全部。

相關內容