簡體   English   中英

CoreBluetooth可檢測配件的接近程度(背景中的最簡單應用程序)

[英]CoreBluetooth to detect accessory proximity (whilst app in background)

當應用程序在后台運行時,我想使用CoreBluetooth檢測與硬件的接近度(發出BLE信號)。

第一步是在功能選項卡中激活BLE后台模式 這將允許應用程序在后台運行時也接收BLE信號。 現在,第二步將是編寫代碼以檢測與BLE外設的接近程度

查看iOS開發人員藍牙指南(第45/46頁),我發現:

調用scanForPeripheralsWithServices:options:方法時,將CBCentralManagerScanOptionAllowDuplicatesKey常量作為掃描選項。 當您這樣做時,每次中央服務器從外圍設備收到廣告數據包時,都會生成一個發現事件 對於某些用例, 關閉默認 行為可能很有用,例如 根據外圍設備的鄰近程度 (使用外圍設備接收信號強度指示器(RSSI)值) 啟動與外圍設備的連接 Ť

  • 這是正確的方向嗎?
  • 就iOS設備的電池使用而言,這種方法是否比使用iBeacon效率低?

是的,按照您的描述使用CoreBluetooth是一種有效的方法。 您可以針對在前台(對於非制造商的廣告,在后台)檢測到的每個數據包獲取回調。 然后,您可以閱讀RSSI作為接近程度的指標。

無論您要使用CoreBluetooth還是將iBeacons與CoreLocation一起使用,在大多數前景范圍內的情況下,電池使用情況都是相似的。

如果使用CoreBluetooth,您可能不希望在后台無限期地獲取每個數據包的回調,因為這樣會更快地消耗電池電量。 CoreLocation iBeacon API將每個喚醒事件的后台范圍限制為10秒,以幫助節省電池。

如果您使用CoreBluetooth在后台看到您的應用在更長的時間內運行,則可能需要添加自己的邏輯以防止電池消耗。

暫無
暫無

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

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