2015-09-04 33 views
2

我正在iOS 8.4中使用Core Bluetooth API。我的代碼與一個編程爲iBeacon的BLE設備進行交互。這裏是通過我的實施CBCentralManager協議的didDiscoverPeripheral回調函數的所產生的日誌記錄語句:可以獲得iBeacon的掃描響應

2015年9月4日16:23:08.231 CentralManager - 確實發現外圍[CBPeripheral:0x1742e0b80,標識符= 8B63C7F8-44D5-F3E2-AD40 -2916A2513BA9,name = DfuTarg,state = disconnected]與數據[[kCBAdvDataIsConnectable:0]]

logging語句輸出函數的外設和advertisementData參數的值。請注意,打印外設的名稱(順便說一句:我碰巧知道DfuTarg是正在掃描的設備的正確名稱)。

iOS從哪裏獲得這個名字?它不是廣告包的一部分。它必須來自輔助掃描請求/掃描響應交換,是嗎?我的代碼是否可以訪問掃描響應?

回答

1

是的,CBPeripheral名稱來自掃描響應。 CoreBluetooth會在檢測到廣告時自動請求掃描響應數據(至少在應用程序處於前臺時)。

didDiscoverPeripheral方法被調用時,來自初始廣告和掃描響應的信息,當兩者都被設備接收到時。基本上,您已經通過使用該回調方法訪問掃描響應信息。

重要的是要注意的是,當廣告被識別爲iBeacon時,您無法在此回調中訪問原始製造商數據。 iOS會將其刪除,因此您無法訪問它。這對於廣告和掃描響應中出現的製造商數據字節是正確的。

查看here瞭解更多信息。

+0

謝謝大衛。 – Verticon

相關問題