2012-12-29 30 views
6

我無法確定如何在後臺運行應用程序時接收Bluetooth LE外圍設備廣告。也就是說,當我的應用程序在後臺它永遠不會到達didDiscoverPeripheral()方法 - 廣告在哪裏..有誰知道我需要如何配置我的應用程序,以便我可以獲取藍牙LE廣告,而我的應用程序在背景?這可以通過線程輪詢來完成,而我的應用程序在後臺?注意:我想從所有BLE設備獲取廣告,而不是定義數量的BLE設備。使用Core Bluetooth在後臺獲取Bluetooth LE外圍設備廣告

感謝幫助,

凱西

回答

7

我從我的應用程序這樣做。

在後臺模式下CoreBluetooth

被認爲是達到比周圍的廣告區間慢55倍。爲了加快速度,我將外設編程爲在前30秒內每20ms廣告一次。

也必須定義「需要後臺模式」在你的項目目標「應用程序進行通信使用CoreBluetooth」 - >信息。

它確實需要一段時間的應用發現在後臺模式外設。

+1

我感謝您的幫助。我一回到家就試試這個,並告訴你它是否有效。爲了確保你明白,你的應用程序將達到didDiscoverPeripheral()方法是否正確?反過來,讓您的應用程序解析外圍設備廣告.. – CaseyG

+0

嗯,我仍然無法得到它的工作。就像你指出的那樣,我把廣告時間間隔改爲20ms。我認爲我的問題可能是我正在使用不受限制的掃描(例如:scanForPeripherals:nil options:options)而不是受限掃描。 iOS可能會取消無限制的掃描,當你的應用程序進入後臺某人聲明[這裏](http://stackoverflow.com/questions/9896562/what-exactly-can-corebluetooth-applications-do-whilst-in-the-background) 。您是使用無限制掃描還是限制?我想使用一個不受限制的應用程序 - 如果可能的話。謝謝你的幫助。 – CaseyG

+0

好吧,我得到它的工作。您必須使用受限掃描,並且必須像henrik提到的那樣將您的間隔設置爲20ms左右。謝謝。 – CaseyG

相關問題