2014-05-20 32 views
1

有沒有辦法從CBPeripheralManager修改CBAdvertisementDataManufacturerDataKey?我知道我可以從CBCentralManager得到CBAdvertisementDataManufacturerDataKey從外設更改CBAdvertisementDataManufacturerDataKey

我想這樣做的原因是因爲我希望外設公佈一個10字節的值,而不是訴諸中央連接到它,發現服務,然後讀取一個包含10字節值的特性。

回答

3

不,從iOS 7開始,目前還不可能。製造商數據由Apple保留,不可修改(至少在非越獄設備上)。如果您正在爲自己的外設編寫固件,這不會成爲問題。但是由於CoreBluetooth API是蘋果公司實際實施iOS Ble的固件之上的一層,我們面臨着它們實際暴露的限制。但是,您可以考慮爲自己的自定義服務做廣告,並顯示與製造商數據相同的價值。

+0

我能否從外設(iOS設備)檢索此自定義服務而無需連接到它? – Allen

+1

是的,它會出現在設備被發現時看到的廣告數據中。但是,背景與前景廣告存在限制。查看peripheralManager文檔獲取更多詳細信息https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBPeripheralManager_Class/Reference/CBPeripheralManager.html –

+0

OH - 本地名稱。是的,我意識到這一點,但我需要外圍設備在後臺做廣告......感覺目前的iOS SDK非常有限 – Allen