2012-10-18 76 views

回答

10

BLE通信是基於總協定(基本屬性),其本質上是不同的特性的值的服務下的交流。如果您已閱讀TemperatureSensor示例代碼,則必須看到它已根據服務UUID開始發現設備,然後在服務下讀取/寫入仍基於UUID的特性。因此,只要傳感器支持BLE並且您知道其服務(其UUID,其特性和屬性),就可以編程您的iOS應用程序以與其進行通信。部分服務由Bluetooth SIG「預先定義」,因此您可以在Bluetooth SIG website上找到這些服務的信息。

+0

有一件事是不是對UUID很清楚。您的意思是我必須在連接之前瞭解BLE設備(傳感器)的UUID?不同的BLE設備有不同的UUID?換句話說,當我購買一個新的BLE設備時,它應該提供一個UUID,以便我可以將該ID添加到我的程序中,然後才能連接到它?謝謝。 –

+6

@bagusflyer在BLE中,一切(設備,服務,特性)都被分配一個UUID。但是你不需要知道設備UUID來連接它們。相反,您可以隨時掃描附近的設備並連接到它們,然後掃描該外圍設備上的服務。但是,知道服務UUID以識別提供此服務的服務是明智的。例如,如果您知道SERVICE「溫度」的UUID是0xabcd,然後你可以只處理與周邊提供服務買調用「scanForPeripheralsWithServices:」與UUID 0xabcd作爲此函數的參數。 –

+0

感謝您的建議。非常清楚。 –

8

是的,你可以連接任何BLE裝置的BLE支持iOS設備。

在問候你談論的示例代碼,它看起來對於溫度傳感器的特定服務UUID:

[centralManager scanForPeripheralsWithServices:uuidArray options:options]; 

存在作爲目前市場上沒有溫度傳感器,我能找到你可能想用零來掃描任何和所有設備:

[centralManager scanForPeripheralsWithServices:nil options:options]; 

要使用這個實驗中,你可以使用該應用LightBlueiTunes Link它可以讓你把你的iPhone變成一個外設與任何服務/特性你定義。