簡體   English   中英

iBeacon iOS 10:設備可以掃描並從其他外圍設備接收廣告嗎?

[英]iBeacon iOS 10: Can device scan for and receive advertisements from other peripheral devices?

這里是全新的。

Tl; dr:iOS設備可以播發可以被其他iOS設備掃描的CB廣告(CBAdvertisementDataServiceUUIDsKey和/或CBAdvertisementDataLocalNameKey)嗎?

我相信我的問題是基於不贊成使用的內容以及在更高版本的iOS中對CoreBluetooth和CoreLocation的更改而引起的。 另外,就目前而言,我僅指“前景”操作。

根據我的閱讀和測試,外圍設備可以使用CL傳輸信標區域(唯一接近UUID,主要和次要(但特別是沒有“標識符”))。 借助CB,外圍設備還可以“公告”兩個額外的少量數據之一:CBAdvertisementDataServiceUUIDsKey和CBAdvertisementDataLocalNameKey。

我無法實現的是讓設備(例如iPhone)使用CB掃描這些附加密鑰中的任何一個,或者正如我提到的使用CL或CB的可選“標識符”進行掃描。

指定掃描的唯一選項需要CBUUID,但未發現的iOS外圍設備在技術上無法發布該信息:

central.scanForPeripherals(withServices: [CBUUID]?, options: [String : Any]?)

似乎下面的方法可以工作,但advertData似乎不包含上述鍵,即使[String:Any]也是如此:

func centralManager(_ central: CBCentralManager,
                             didDiscover peripheral: CBPeripheral,
                             advertisementData: [String : Any],
                             rssi RSSI: NSNumber){
//code
}

這里的任何幫助/答案將不勝感激。 謝謝!

不幸的是, iOS在這里毫無幫助。 蘋果通過多種方式鎖定CoreBluetooth。

發送/接收廣告的三種基本方式:

iBeacon顯示

  • 您可以在前台和后台使用CoreLocation掃描iBeacon廣告,並具有快速響應,但是數據字段僅限於ProximityUUID(主要和次要)。

  • 您只能在前台使用CoreBluetooth傳輸iBeacon廣告。

藍牙LE服務廣告

  • 您可以使用CoreBluetooth在前台(但不能在后台)傳輸這些文件,但不能附加任意數據。 但是,您可以發送16字節的任意服務UUID。

  • 您可以在前台和后台使用CoreBluetooth掃描服務廣告,並讀取具有快速前台響應和慢速后台響應的服務UUID。 如果使用16位服務UUID,則還可以從這些廣告中讀取最多18個字節的附件數據。 渦流以這種方式工作。

藍牙LE制造商廣告

  • 除了如上所述的特殊iBeacon廣告,您根本無法在iOS上使用CoreBluetooth來廣告制造商廣告。

  • 您可以使用CoreBluetooth掃描制造商的廣告,並且可以讀取最多23個字節的附件數據。 您根本無法在后台進行檢測,但是前景檢測很快。

底線:如果要將廣告數據從一台iOS設備發送到前台或后台的另一台設備,則只有iBeacon。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM