我在iPhone 5S使用藍牙LE,我也做了以下內容:藍牙LE,在後臺scanForPeripheralsWithServices,提高速度
我有一個藍牙外設和我已將其配置爲在發佈各20毫秒所有三個藍牙廣告頻道(37,38和39)。
我已經配置我的應用程序UIBacgroundModes =藍牙中央在Info.plist中
我已經開始了一個scanForPeripheralsWithServices像下面
代碼:
NSDictionary *options = @{
CBCentralManagerOptionRestoreIdentifierKey:@"myCentralManagerIdentifier",
CBCentralManagerScanOptionAllowDuplicatesKey:[NSNumber numberWithBool:YES]
};
self.manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];
[self.manager scanForPeripheralsWithServices:[NSArray arrayWithObject:[CBUUID UUIDWithString:@"<uuid removed>"]] options:options];
目前狀態是:
在前景模式中的應用程序快速地接收廣告消息時,我開始外圍設備(在一秒鐘內)
在背景模式下啓動外圍設備(其可以是可接受的,即使後該應用有時接收內如10秒內的廣告消息如果它不好),但它通常很長一段時間(幾分鐘或更長時間)沒有收到廣告,這對於應用程序來說不起作用。
的問題是:
是它在某種程度上可以提高其速率的iOS正在掃描藍牙4.0 LE外設當掃描應用程序在後臺?由於我不認爲有這樣的公共API,我正在尋找一個不是由Apple發佈的私有API。這是針對內部企業應用程序的,因此私有API將非常合適。
@jesnolsson如何在啓動應用程序時查找CBUUID?我想在我的項目中做到這一點。 –
你可能應該在SO上寫一個新的問題。但是爲了讓你開始,只需按照上面的代碼。服務的實際UUID特定於您所擁有的藍牙LE附件的種類,因此您需要查看實際的數字。爲此,我會推薦App Store上的LightBlue。 –