2013-07-02 98 views
6

有沒有一種唯一識別BTLE設備(類似於硬件ID)的方法?我有2個硬件BTLE設備和2個軟BTLE設備(使用CBCentralManager)。所有這些設備都發送相同的UUID。一種唯一識別BTLE設備的方法

我想確定所有設備躺在我附近時確切的BTLE設備。任何線索?

+0

這將是有趣的,看看答案對此。我正在使用BTLE作爲設備的「串行端口電纜更換」。一旦我確定設備在centralManager中發送我的UUID:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral ...然後連接到它併發送虛擬串行端口命令以查找其設備ID(變量我們發送了該機器的微控制器)。然後我匹配iOS爲設備分配設備ID的CBPeripheral uuid。 – drinck

+0

看到這個:http://stackoverflow.com/questions/12524871/corebluetooth-how-to-get-a-unique-uuid – novis

回答

2

設備應該有唯一的藍牙地址。如果他們不這樣做,那麼你就不能正確地連接到他們,而不會相互干擾。但是,對於BTLE,設備可能擁有一個隱私隨機地址(但符合特定模式,因此您可以檢測是否獲得該類地址)。地址是6個字節,通常以十六進制顯示(例如,A1-B2-C3-D4-E5-F6)。前2個字節通常表示製造商。

UPDATE:我的回答是適合大多數BLE使用,但因爲這個問題被標記你可能想在this other answer about getting a unique id on ios看作是一個可能的方式來獲得藍牙地址

+2

更重要的是對於這裏提出的問題是,儘管BTLE設備應該(通常)具有唯一的地址, iOS拒絕將這些信息透露給應用程序,而是將其隱藏在手機分配的臨時標識符後面,這些臨時標識符沒有已知的映射到它們所代表的設備的實際屬性。 –

+0

第一個* 3字節*通常表示製造商(設備或芯片的製造商),如果它是公用地址,但地址也可以是隨機的(靜態或私有) – calandoa