2012-08-26 57 views
4

我剛剛寫了一個簡單的應用程序,用於掃描並連接到外圍設備(也是IOS設備)。然而,我從ConnectPeripheral函數返回的CBPeripheral對象沒有設備UUID,並且它始終爲空。現在我正試圖理解我在哪裏設置它,以便它通過。 這是我正在做的。如何在CoreBluetooth框架中傳遞設備UUID以便客戶端稍後重新連接

爲了宣傳我的服務我做

NSDictionary *advertisingDict=[NSDictionary dictionaryWithObject: services forKey:CBAdvertisementDataServiceUUIDsKey] 
[manager startAdvertising:advertisingDicts]; 

(從框架我明白,我無法通過在廣告數據包的設備UUID。糾正我,如果我錯了這裏)

我的客戶掃描該服務並進入該功能

centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral 

並如預期的那樣,peripheral.uuid爲空。如果我在這個外設上調用connectPeripheral,它也可以正常工作。我不確定它是如何理解uuid爲空時連接哪個設備的。此外,如果我想稍後重新連接,我需要做什麼。我如何填寫此uuid?

+1

IOS 6仍然在保密協議在Apple的開發者論壇上討論這個問題。 –

+1

謝謝我發佈在https://devforums.apple.com/thread/164622?tstart=0。希望有人會回答 – Creador

回答

1

它有一個工作。你能傳遞像這樣的設備的本地名稱:

[self.peripheralManager startAdvertising:@{CBAdvertisementDataLocalNameKey : *the UUID*}]; 

並在didDiscoverPeripheral功能的其它裝置,你可以得到這樣的:

[advertisementData objectForKey:@"kCBAdvDataLocalName"] 
相關問題