2013-07-22 119 views
2

我有一個使用CC2541芯片組的藍牙4.0(BLE)設備,我通過iOS Core藍牙框架進行連接。iOS CoreBluetooth與UUID重新連接設備

當設備處於可發現/廣告模式並且可以毫無問題地將數據傳輸到設備或從設備傳輸數據時,我可以成功地使用Core Bluetooth建立與設備的連接。

我保持了我與連接的設備的UUID的集合,我現在嘗試連接到這些設備之一再次使用:

CBCentralManager 
- (void)retrievePeripherals:(NSArray *)peripheralUUIDs 

調用此函數似乎工作,我收到一個回調我實現以下功能:

CBCentralManagerDelegate 
- (void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals 

我試圖連接的設備是一個和傳遞給此功能的外設陣列中只列出周邊。

當我然後嘗試使用我的連接功能(如下所示)連接到此設備時,連接將不會啓動,並且CBCentralManagerDelegate或CBPeripheralDelegate上都沒有回調。

- (void) connectPeripheral:(CBPeripheral *)peripheral { 
    NSLog(@"Connecting to peripheral with UUID : %s\r\n",[self UUIDToString:peripheral.UUID]); 
    activePeripheral = peripheral; 
    activePeripheral.delegate = self; 
    [CM connectPeripheral:activePeripheral options:nil]; 
} 

我可以讓連接辦理成功,如上文所述,如果我第一次將設備可被發現/廣告模式,但是這不是一個可行的解決方案。設備必須允許重新連接,而不將其置於可發現模式。

我注意到這個問題的答案CoreBluetooth: What is the lifetime of unique UUIDs暗示我需要將BLE設備與iOS設備配對/綁定,但這可能取決於BLE芯片組,我使用的設備是CC2541。任何關於如何配合設備的建議都是最有用的,或者這是否是一個必要的步驟。我曾試圖觀看WWDC 2012: Advanced Core Bluetooth這可能會給我一些幫助,但由於週四蘋果遭到黑客入侵,我無法訪問我的賬戶觀看視頻。

請讓我知道是否需要更多的細節。藍牙設備是穩定的,但它正在內部開發。如果可能需要對固件進行更改以協助配對過程,我可以將此信息傳遞給電子設備團隊。

回答

0

爲什麼不試試this

它首先指定您需要向GATT特性發送請求,該特性需要GATT_AUTHEN_READ權限。然後你的CC2541將以INVALID AUTHENTICATION進行響應。這將觸發Apple的內部綁定機制並要求提供密鑰。您可以輸入密鑰,然後如果設備和CC2541配對成功,它將讀取特徵值並輸入回撥。

注意:我不是iOS開發人員,但我曾與CC2541合作過。如果您使用默認simplePripheral示例,那麼simpleProfile特性5中的特性需要驗證才能讀取。看個人資料/ SimpleProfile/simpleGATTprofile.c

相關問題