當前位置:編程學習大全網 - 源碼下載 - Ios:我玩過藍牙

Ios:我玩過藍牙

公司的項目是醫療項目,所以這段壹直在處理藍牙。我用的是蘋果的原生框架CoreBluetooth。在對接幾個藍牙設備的過程中,也遇到了壹些坑,下面我壹壹列舉。git上有個庫,BabyBluetooth,是基於原生CoreBluetooth框架封裝的,用起來也很方便。妳可以試試。那我們開始吧!

**

應該註意的是,下面的UUID是我的藍牙設備中服務和特性的UUID。請註意自己的藍牙。

設備提供的服務和UUID的特性。

**

**

這裏有幾個問題值得註意:

**

1.ios中的藍牙廣播信息通常包含以下四類信息。ios的藍牙通信協議不接受其他類型的廣播信息。所以需要註意的是,如果在掃描設備時,需要通過藍牙設備的Mac地址來唯壹識別設備,那麽就需要和藍牙設備的硬件工程師溝通:將所需的Mac地址放入以下類型的廣播信息中。通常放在字段kCBAdvDataManufacturerData中。

kCBAdvDataIsConnectable = 1;

kCBAdvDataLocalName = XXXXXX

kCBAdvDataManufacturerData = & lt;XXXXXXXX & gt;

kCBAdvDataTxPowerLevel = 0;

2.設備的UUID(peripheral.identifier)是兩個設備的mac通過壹個算法得到的,所以不同的手機連接到同壹個設備,它的UUID是不壹樣的,無法識別設備。

3.蘋果與藍牙設備通信時,不使用蘋果藍牙模塊的Mac地址,而是使用蘋果隨機生成的十六進制碼作為手機藍牙的Mac,與外設藍牙設備進行交互。如果藍牙設備在壹定時間內多次與手機通信,則以第壹次連接時隨機生成的十六進制碼作為Mac地址。過了這個固定的時間段,手機會清空隨機生成的Mac地址,重新生成。也就是說,外圍設備不能通過與蘋果手機交互時獲得的藍牙Mac地址作為手機的唯壹標識。(這是和寫藍牙設備的固件工程師調試時出現問題的現象推斷出來的。至於蘋果藍牙通信協議的底層是否如我所說,希望了解的讀者能有所幫助。提前感謝。)

需要註意的是,kCGMCharacteristicOneUUID的這個特性是寫在這裏的。之所以在這裏這麽做,是因為我的藍牙設備的藍牙協議就是這麽定義的,這裏就不要復制了。您應該根據藍牙設備的通信協議來確定讀取哪個功能、寫入哪個功能以及設置哪個功能通知。

應該註意的是,這裏讀取的是藍牙信息(但它不是在返回值中接收的,而是在

在這個回調方法中接收)

  • 上一篇:什麽是平滑平均線?指數平滑異同移動平均線計算公式及應用
  • 下一篇:ERP是什麽?
  • copyright 2024編程學習大全網